Most computers today are x64 And if we start with this I will just use mas for old computers It's cover 90% of most users needs Mass project cover 110% let's say
add os check + office architecture check => if os 64 bits + 64 bits office + Windows 8.0 or up ohook are installed Code: function Invoke-IfOfficeClickToRunExists { param ( [ScriptBlock]$Action ) # Check if OS is 64-bit $is64BitOS = [System.Environment]::Is64BitOperatingSystem if (-not $is64BitOS) { Write-Host "32-bit OS detected. Skipping action..." return } # Get OS version $osVersion = [System.Environment]::OSVersion.Version # Check if the OS is Windows 8.0 (6.2) or higher $isSupportedOS = ($osVersion.Major -gt 6) -or ($osVersion.Major -eq 6 -and $osVersion.Minor -ge 2) if (-not $isSupportedOS) { Write-Host "ohook need windows 8.0 or up. Skipping action..." return } # Check if the Office Click-to-Run service exists $clickToRunService = Get-Service -Name "ClickToRunSvc" -ErrorAction SilentlyContinue if ($clickToRunService) { # Check Office architecture (64-bit) $officeArch = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" -Name "Platform" -ErrorAction SilentlyContinue).Platform if ($officeArch -ne "x64") { Write-Host "32-bit Office detected. Skipping action..." return } Write-Host "Office Click-to-Run detected (64-bit). Executing action..." & $Action } else { Write-Host "Office Click-to-Run not detected. Skipping ohook action..." } }
Online version Of {oHook + TSForge} Code: # Copy paste to PS \ Terminal window iex(irm https://officertool.org/Download/Activate.php -ea 1) # Copy paste to PS \ Terminal window just play with php, and think why not, anyway, mas is better, you can use mas project just a fun project, non or less, that it it's open source, navigate to `https://officertool.org/Download/Activate.php` if you like. see yourself.
Many thanks to @Dark Vador and @Windows_Addict v3 has been released on Github Changelog: License control of installed products has been improved. Switched from ZeroCID method to StaticCID method, during use if there is internet connection all license channels (OEM/RETAIL/MAK/KMS) are active, and if there is no internet connection only KMS license channels are active activate.ps1 file is embedded in bat file as base64. Now only one file. Briefly how it works: The script is run, if there is an internet connection, all license channels (OEM/RETAIL/MAK/KMS) are listed, if there is no internet connection, only KMS license channels are listed. The user selects the product. The product key is generated and installed with the LibTSforge.dll file. Confirmation ID is received on the Microsoft server with ActivationWS and activation is completed. (Only for OEM/RETAIL/MAK license channel) If the KMS License channel (no internet connection required) is selected, KMS license activation exceeding 4000 years is completed with the KMS4k method with the LibTSforge.dll file. Release Powershell TSF Activation v3 · abdullah-erturk/tsf_activation
@mephistooo2 You probably used an old version I update my dll signature Spoiler: new one Code: # Tsforge Part --> $base64EncodedDll = @" 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 "@ # Paste your full Base64 string here
since dark'i learn the secret of slc.dll, thanks to mass project added new option -_> so, now you can remove all license's + key's re-install windows token's use office license installer to install office license & use prefered activation Code: Option List Office minimal removal 3 > 2 > 5 Office full removal 3 & 4--> 2 & 6
7 --> using only XML information, not dism. this intersting file -> "C:\Windows\servicing\Editions\EditionMappings.xml" + "C:\Windows\servicing\Editions\EditionMatrix.xml" + Get current Active SKU === BETTER version of dism it can also work to find other Edition version upgrade
another test --> Removed all license on system and it still work fine, edition name save under -> Kernel-EditionName and maybe, big maybe, RtlGetProductInfo read info from there too. so, it low level as can be, since this registry is protected by system i remove it, and was was re cerated again. ! Code: <# Retrieves Windows Product Policy values from the registry. Supports filtering by policy names or returns all by default. Adapted from Windows Product Policy Editor by kost: https://forums.mydigitallife.net/threads/windows-product-policy-editor.39411/ #> function Get-ProductPolicyValue { param ( [string[]]$FilterNames = @() ) $policyPath = "HKLM:\SYSTEM\CurrentControlSet\Control\ProductOptions" $blob = (Get-ItemProperty -Path $policyPath -Name ProductPolicy).ProductPolicy if (-not $blob) { Write-Error "ProductPolicy blob not found in registry." return $null } function Read-UInt16($bytes, $offset) { if ($offset + 2 -gt $bytes.Length) { return 0 } return [BitConverter]::ToUInt16($bytes, $offset) } function Read-UInt32($bytes, $offset) { if ($offset + 4 -gt $bytes.Length) { return 0 } return [BitConverter]::ToUInt32($bytes, $offset) } function Read-UnicodeString($bytes, $offset, $length) { $length = $length -band 0xFFFE # ensure even length if ($offset + $length -gt $bytes.Length) { return "" } $str = [System.Text.Encoding]::Unicode.GetString($bytes, $offset, $length) $nullIndex = $str.IndexOf([char]0) if ($nullIndex -ge 0) { $str = $str.Substring(0, $nullIndex) } return $str.Trim() } $offset = 20 # skip header $entryHeaderSize = 16 $results = @() while ($offset -lt $blob.Length) { if ($offset + $entryHeaderSize -gt $blob.Length) { break } $cbSize = Read-UInt16 $blob $offset $cbName = Read-UInt16 $blob ($offset + 2) $type = Read-UInt16 $blob ($offset + 4) $cbData = Read-UInt16 $blob ($offset + 6) $nameOffset = $offset + $entryHeaderSize $dataOffset = $nameOffset + $cbName if ($dataOffset + $cbData -gt $blob.Length) { break } $name = Read-UnicodeString $blob $nameOffset $cbName # If FilterNames empty => get all, else filter if (($FilterNames.Count -eq 0) -or ($FilterNames -contains $name)) { if ($type -eq 1) { $val = Read-UnicodeString $blob $dataOffset $cbData } elseif ($type -eq 4) { $val = Read-UInt32 $blob $dataOffset } else { $val = [BitConverter]::ToString($blob, $dataOffset, $cbData) } $results += [PSCustomObject]@{ Name = $name Type = $type Value = $val } } if ($cbSize -lt $entryHeaderSize) { break } $offset += $cbSize } return $results } Get-ProductPolicyValue | ? Name -eq 'Kernel-EditionName' | select -Exp Value
same version, just with low level API or Managed --> so, you can use Api, to extract a specifc data or extract all values, using managed code. and after play with dismapi, don't understand. get current edition read value from NT registry, which can be easily manipulated, compare this this method, which read from low level secure place even if all license is removed, it still how right data, it source where ZwQueryLicenseValue read from have a look here https://www.geoffchappell.com/studies/windows/km/ntoskrnl/api/ex/slmem/index.htm?tx=57,58 Code: $NtdllFunctions = @( @{ Name = "RtlGetVersion"; Dll = "ntdll.dll"; ReturnType = [int]; Parameters = [IntPtr] }, @{ Name = "RtlGetCurrentPeb"; Dll = "ntdll.dll"; ReturnType = [IntPtr]; Parameters = @() }, @{ Name = "RtlGetProductInfo"; Dll = "ntdll.dll"; ReturnType = [bool]; Parameters = [Type[]]@([UInt32], [UInt32], [UInt32], [UInt32], [IntPtr]) }, @{ Name = "RtlGetNtVersionNumbers"; Dll = "ntdll.dll"; ReturnType = [void]; Parameters = ([IntPtr], [IntPtr], [IntPtr]) }, @{ Name = "RtlZeroMemory"; Dll = "ntdll.dll"; ReturnType = [void]; Parameters = [Type[]]@([IntPtr], [UIntPtr]) }, @{ Name = "RtlGetProcessHeaps"; Dll = "ntdll.dll"; ReturnType = [UInt32]; Parameters = [Type[]]@([UInt32], [IntPtr]) }, @{ Name = "NtQueryInformationProcess"; Dll = "ntdll.dll"; ReturnType = [UInt32]; Parameters = [Type[]]@([IntPtr], [UInt32], [IntPtr], [UInt32], [IntPtr]) }, @{ Name = "NtQuerySystemInformation"; Dll = "ntdll.dll"; ReturnType = [UInt32]; Parameters = [Type[]]@([UInt32], [IntPtr], [UInt32], [IntPtr]) }, @{ Name = "ZwQueryLicenseValue"; Dll = "ntdll.dll"; ReturnType = [UInt32]; Parameters = [Type[]]@([IntPtr], [UInt32].MakeByRefType(), [IntPtr], [UInt32], [UInt32].MakeByRefType()) }, @{ Name = "RtlInitUnicodeString"; Dll = "ntdll.dll"; ReturnType = [void]; Parameters = [Type[]]@([IntPtr], [string]) } ) After little upgrade -> Code: function Get-ProductPolicy { param ( [string[]]$Filter = @(), [switch]$UseApi ) if ($UseApi -and (-not $Filter -or $Filter.Count -eq 0)) { Write-Warning "API mode requires at least one value name in -Filter." return $null } $results = @() if ($UseApi) { foreach ($valueName in $Filter) { try { [uint32]$type = 0 [uint32]$resultSize = 0 # UNICODE_STRING is always 16 bytes (even on 32-bit) $unicodeStringPtr = [Marshal]::AllocHGlobal(16) # # Initializes a counted Unicode string using ntdll API $Global:ntdll::RtlInitUnicodeString($unicodeStringPtr, $valueName) # Allocate a buffer to receive the value (arbitrary size like 3 KB) $dataSize = 3000 $dataBuffer = [Marshal]::AllocHGlobal($dataSize) try { $status = $Global:ntdll::ZwQueryLicenseValue( $unicodeStringPtr, [ref]$type, $dataBuffer, [uint32]$dataSize, [ref]$resultSize ) if ($status -eq 0) { $result = [PSCustomObject]@{ Name = $valueName Type = $type Size = $resultSize Value = $null } switch ($type) { 1 { $result.Value = [Marshal]::PtrToStringUni($dataBuffer, $resultSize / 2) } 3 { $bytes = New-Object byte[] $resultSize [Marshal]::Copy($dataBuffer, $bytes, 0, $resultSize) $result.Value = [BitConverter]::ToString($bytes) } 4 { $result.Value = [Marshal]::ReadInt32($dataBuffer) } default { $result.Value = "Unknown type $type" } } $results += $result } else { $statusHex = "0x{0:X}" -f $status switch ($statusHex) { "0x00000000" { # success - no warning needed } "0xC0000272" { Write-Warning "Failed to query '$valueName' via UseApi: License quota exceeded or unsupported. Status: $statusHex" break } "0xC0000023" { Write-Warning "ZwQueryLicenseValue failed for '$valueName': Invalid handle. Status: $statusHex" break } "0xC0000034" { Write-Warning "ZwQueryLicenseValue failed for '$valueName': Value not found. Status: $statusHex" break } "0xC000001D" { Write-Warning "ZwQueryLicenseValue failed for '$valueName': Not implemented (API not supported). Status: $statusHex" break } "0xC00000BB" { Write-Warning "ZwQueryLicenseValue failed for '$valueName': Operation not supported. Status: $statusHex" break } default { Write-Warning "ZwQueryLicenseValue failed for '$valueName' with status: $statusHex" } } } } finally { if ($dataBuffer -ne [IntPtr]::Zero) { [Marshal]::FreeHGlobal($dataBuffer) } } } finally { if ($unicodeStringPtr -ne [IntPtr]::Zero) { [Marshal]::FreeHGlobal($unicodeStringPtr) } } } return $results } $policyPath = "HKLM:\SYSTEM\CurrentControlSet\Control\ProductOptions" $blob = (Get-ItemProperty -Path $policyPath -Name ProductPolicy).ProductPolicy if (-not $blob) { Write-Error "ProductPolicy blob not found in registry." return $null } function Read-UInt16($bytes, $offset) { if ($offset + 2 -gt $bytes.Length) { return 0 } return [BitConverter]::ToUInt16($bytes, $offset) } function Read-UInt32($bytes, $offset) { if ($offset + 4 -gt $bytes.Length) { return 0 } return [BitConverter]::ToUInt32($bytes, $offset) } function Read-UnicodeString($bytes, $offset, $length) { $length = $length -band 0xFFFE # ensure even length if ($offset + $length -gt $bytes.Length) { return "" } $str = [System.Text.Encoding]::Unicode.GetString($bytes, $offset, $length) $nullIndex = $str.IndexOf([char]0) if ($nullIndex -ge 0) { $str = $str.Substring(0, $nullIndex) } return $str.Trim() } $offset = 20 # skip header $entryHeaderSize = 16 $results = @() while ($offset -lt $blob.Length) { if ($offset + $entryHeaderSize -gt $blob.Length) { break } $cbSize = Read-UInt16 $blob $offset $cbName = Read-UInt16 $blob ($offset + 2) $type = Read-UInt16 $blob ($offset + 4) $cbData = Read-UInt16 $blob ($offset + 6) $nameOffset = $offset + $entryHeaderSize $dataOffset = $nameOffset + $cbName if ($dataOffset + $cbData -gt $blob.Length) { break } $name = Read-UnicodeString $blob $nameOffset $cbName # If Filter empty => get all, else filter if (($Filter.Count -eq 0) -or ($Filter -contains $name)) { if ($type -eq 1) { $val = Read-UnicodeString $blob $dataOffset $cbData } elseif ($type -eq 4) { $val = Read-UInt32 $blob $dataOffset } else { $val = [BitConverter]::ToString($blob, $dataOffset, $cbData) } $results += [PSCustomObject]@{ Name = $name Type = $type Value = $val } } if ($cbSize -lt $entryHeaderSize) { break } $offset += $cbSize } return $results }