mirror of
https://github.com/massgravel/Microsoft-Activation-Scripts.git
synced 2025-04-22 00:22:58 +00:00
Compare commits
2 Commits
c316b42e5c
...
f5a0a63165
Author | SHA1 | Date | |
---|---|---|---|
|
f5a0a63165 | ||
|
0d61475468 |
@ -2608,7 +2608,6 @@ set _prids=
|
|||||||
set _config=
|
set _config=
|
||||||
set _version=
|
set _version=
|
||||||
set _License=
|
set _License=
|
||||||
set _oBranding=
|
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
@ -2862,20 +2861,11 @@ set "_common=%CommonProgramFiles%"
|
|||||||
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
||||||
set "_common2=%CommonProgramFiles(x86)%"
|
set "_common2=%CommonProgramFiles(x86)%"
|
||||||
|
|
||||||
for /r "%_common%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
|
||||||
if not defined _oBranding for /r "%_common2%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
|
||||||
|
|
||||||
call :msiofficedata %2
|
call :msiofficedata %2
|
||||||
|
|
||||||
echo:
|
echo:
|
||||||
echo Activating Office... [MSI ^| %_version% ^| %_oArch%]
|
echo Activating Office... [MSI ^| %_version% ^| %_oArch%]
|
||||||
|
|
||||||
if not defined _oBranding (
|
|
||||||
set error=1
|
|
||||||
call :dk_color %Red% "Checking BRANDING.XML [Not Found, aborting activation...]"
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
if not defined _oIds (
|
if not defined _oIds (
|
||||||
set error=1
|
set error=1
|
||||||
call :dk_color %Red% "Checking Installed Products [Product IDs not found, aborting activation...]"
|
call :dk_color %Red% "Checking Installed Products [Product IDs not found, aborting activation...]"
|
||||||
@ -4790,7 +4780,6 @@ set _prids=
|
|||||||
set _config=
|
set _config=
|
||||||
set _version=
|
set _version=
|
||||||
set _License=
|
set _License=
|
||||||
set _oBranding=
|
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
@ -4910,9 +4899,6 @@ set "_common=%CommonProgramFiles%"
|
|||||||
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
||||||
set "_common2=%CommonProgramFiles(x86)%"
|
set "_common2=%CommonProgramFiles(x86)%"
|
||||||
|
|
||||||
for /r "%_common%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
|
||||||
if not defined _oBranding for /r "%_common2%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
|
||||||
|
|
||||||
if exist "%_common%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms" (
|
if exist "%_common%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms" (
|
||||||
set "pkeypath=%_common%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms"
|
set "pkeypath=%_common%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms"
|
||||||
) else if exist "%_common2%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms" (
|
) else if exist "%_common2%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms" (
|
||||||
@ -4924,12 +4910,6 @@ call :msiofficedata %2
|
|||||||
echo:
|
echo:
|
||||||
echo Processing Office... [MSI ^| %_version% ^| %_oArch%]
|
echo Processing Office... [MSI ^| %_version% ^| %_oArch%]
|
||||||
|
|
||||||
if not defined _oBranding (
|
|
||||||
set error=1
|
|
||||||
call :dk_color %Red% "Checking BRANDING.XML [Not Found. Aborting activation...]"
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
if not defined _oIds (
|
if not defined _oIds (
|
||||||
set error=1
|
set error=1
|
||||||
call :dk_color %Red% "Checking Installed Products [Product IDs not found. Aborting activation...]"
|
call :dk_color %Red% "Checking Installed Products [Product IDs not found. Aborting activation...]"
|
||||||
@ -8874,6 +8854,24 @@ function Get-WmiInfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function slGetSkuInfo($SkuId) {
|
||||||
|
$t = [AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1).DefineDynamicModule(2, $False).DefineType(0)
|
||||||
|
$t.DefinePInvokeMethod('SLOpen', 'slc.dll', 22, 1, [Int32], @([IntPtr].MakeByRefType()), 1, 3).SetImplementationFlags(128)
|
||||||
|
$t.DefinePInvokeMethod('SLClose', 'slc.dll', 22, 1, [IntPtr], @([IntPtr]), 1, 3).SetImplementationFlags(128)
|
||||||
|
$t.DefinePInvokeMethod('SLGetProductSkuInformation', 'slc.dll', 22, 1, [Int32], @([IntPtr], [Guid].MakeByRefType(), [String], [UInt32].MakeByRefType(), [UInt32].MakeByRefType(), [IntPtr].MakeByRefType()), 1, 3).SetImplementationFlags(128)
|
||||||
|
$w = $t.CreateType()
|
||||||
|
$hSLC = 0
|
||||||
|
try {
|
||||||
|
[void]$w::SLOpen([ref]$hSLC)
|
||||||
|
$c = 0; $b = 0
|
||||||
|
$r = $w::SLGetProductSkuInformation($hSLC, [ref][Guid]$SkuId, "msft:sl/EUL/PHONE/PUBLIC", [ref]$null, [ref]$c, [ref]$b)
|
||||||
|
return ($r -eq 0)
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
[void]$w::SLClose($hSLC)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($env:resetstuff -eq $null) {
|
if ($env:resetstuff -eq $null) {
|
||||||
foreach ($tsactid in $tsactids) {
|
foreach ($tsactid in $tsactids) {
|
||||||
try {
|
try {
|
||||||
@ -8884,6 +8882,13 @@ if ($env:resetstuff -eq $null) {
|
|||||||
$prodName = if ($nameParts.Count -gt 1) { ($nameParts[1].Trim() -split '[ ,]')[0] } else { $null }
|
$prodName = if ($nameParts.Count -gt 1) { ($nameParts[1].Trim() -split '[ ,]')[0] } else { $null }
|
||||||
}
|
}
|
||||||
[LibTSforge.Modifiers.GenPKeyInstall]::InstallGenPKey($ver, $prod, $tsactid)
|
[LibTSforge.Modifiers.GenPKeyInstall]::InstallGenPKey($ver, $prod, $tsactid)
|
||||||
|
if ($prodName -match 'Office' -and -not (slGetSkuInfo($tsactid))) {
|
||||||
|
$licenseStatus = Get-WmiInfo -tsactid $tsactid -property "LicenseStatus"
|
||||||
|
if ($licenseStatus -eq 1) {
|
||||||
|
Write-Host "[$prodName] is already permanently activated." -ForegroundColor White -BackgroundColor DarkGreen
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
[LibTSforge.Activators.ZeroCID]::Activate($ver, $prod, $tsactid)
|
[LibTSforge.Activators.ZeroCID]::Activate($ver, $prod, $tsactid)
|
||||||
$licenseStatus = Get-WmiInfo -tsactid $tsactid -property "LicenseStatus"
|
$licenseStatus = Get-WmiInfo -tsactid $tsactid -property "LicenseStatus"
|
||||||
if ($licenseStatus -eq 1) {
|
if ($licenseStatus -eq 1) {
|
||||||
@ -10926,7 +10931,7 @@ set _prids=
|
|||||||
set _config=
|
set _config=
|
||||||
set _version=
|
set _version=
|
||||||
set _License=
|
set _License=
|
||||||
set _oBranding=
|
set _oMSI=
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
@ -11008,7 +11013,7 @@ exit /b
|
|||||||
for %%# in (%_oIds%) do (
|
for %%# in (%_oIds%) do (
|
||||||
|
|
||||||
set skipprocess=
|
set skipprocess=
|
||||||
if %_NoEditionChange%==1 if not defined _oBranding (
|
if %_NoEditionChange%==1 if not defined _oMSI (
|
||||||
set foundprod=
|
set foundprod=
|
||||||
call :ksdata chkprod %%#
|
call :ksdata chkprod %%#
|
||||||
if not defined foundprod (
|
if not defined foundprod (
|
||||||
@ -11057,7 +11062,7 @@ if not "!key!"=="" (
|
|||||||
echo "!allapps!" | find /i "!_actid!" %nul1% || call :oh_installlic
|
echo "!allapps!" | find /i "!_actid!" %nul1% || call :oh_installlic
|
||||||
call :dk_inskey "[!key!] [!_prod!]"
|
call :dk_inskey "[!key!] [!_prod!]"
|
||||||
) else (
|
) else (
|
||||||
if not defined _oBranding (
|
if not defined _oMSI (
|
||||||
set error=1
|
set error=1
|
||||||
call :dk_color %Red% "Checking Product In Script [Office %oVer%.0 !_prod! not found in script]"
|
call :dk_color %Red% "Checking Product In Script [Office %oVer%.0 !_prod! not found in script]"
|
||||||
call :dk_color %Blue% "Make sure you are using Latest MAS script."
|
call :dk_color %Blue% "Make sure you are using Latest MAS script."
|
||||||
@ -11080,6 +11085,7 @@ exit /b
|
|||||||
:: Process Office MSI Version
|
:: Process Office MSI Version
|
||||||
|
|
||||||
call :ks_reset
|
call :ks_reset
|
||||||
|
set _oMSI=1
|
||||||
|
|
||||||
if "%1"=="14" (
|
if "%1"=="14" (
|
||||||
call :dk_actids 59a52881-a989-479d-af46-f275c6370663
|
call :dk_actids 59a52881-a989-479d-af46-f275c6370663
|
||||||
@ -11100,21 +11106,11 @@ set "_common=%CommonProgramFiles%"
|
|||||||
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
||||||
set "_common2=%CommonProgramFiles(x86)%"
|
set "_common2=%CommonProgramFiles(x86)%"
|
||||||
|
|
||||||
for /r "%_common%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
call :msiofficedata %2
|
||||||
if not defined _oBranding for /r "%_common2%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
|
||||||
|
|
||||||
call :ksdata getmsiprod %2
|
|
||||||
call :msiofficedata %2 getmsiret
|
|
||||||
|
|
||||||
echo:
|
echo:
|
||||||
echo Processing Office... [MSI ^| %_version% ^| %_oArch%]
|
echo Processing Office... [MSI ^| %_version% ^| %_oArch%]
|
||||||
|
|
||||||
if not defined _oBranding (
|
|
||||||
set error=1
|
|
||||||
call :dk_color %Red% "Checking BRANDING.XML [Not Found. Aborting activation...]"
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
if not defined _oIds (
|
if not defined _oIds (
|
||||||
set error=1
|
set error=1
|
||||||
call :dk_color %Red% "Checking Installed Products [Product IDs not found. Aborting activation...]"
|
call :dk_color %Red% "Checking Installed Products [Product IDs not found. Aborting activation...]"
|
||||||
@ -12134,18 +12130,13 @@ for %%# in (
|
|||||||
) do (
|
) do (
|
||||||
for /f "tokens=1-5 delims=_" %%A in ("%%#") do (
|
for /f "tokens=1-5 delims=_" %%A in ("%%#") do (
|
||||||
|
|
||||||
set getIds=1
|
|
||||||
if "%oVer%"=="%%A" (
|
if "%oVer%"=="%%A" (
|
||||||
if /i "%2"=="getmsiret" (echo %%D | findstr /i "Volume VL" %nul% && set getIds=)
|
|
||||||
|
|
||||||
if defined getIds (
|
|
||||||
reg query "%1\Registration\{%%B}" /v ProductCode %nul2% | find /i "-%%C-" %nul% && (
|
reg query "%1\Registration\{%%B}" /v ProductCode %nul2% | find /i "-%%C-" %nul% && (
|
||||||
reg query "%1\Common\InstalledPackages" %nul2% | find /i "-%%C-" %nul% && (
|
reg query "%1\Common\InstalledPackages" %nul2% | find /i "-%%C-" %nul% && (
|
||||||
if defined _oIds (set _oIds=!_oIds! %%D) else (set _oIds=%%D)
|
if defined _oIds (set _oIds=!_oIds! %%D) else (set _oIds=%%D)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -12418,7 +12409,7 @@ if /i "%2"=="%%D" (
|
|||||||
set key=%%B
|
set key=%%B
|
||||||
set _actid=%%A
|
set _actid=%%A
|
||||||
set _allactid=!_allactid! %%A
|
set _allactid=!_allactid! %%A
|
||||||
) else if not defined _oBranding if %_NoEditionChange%==0 (
|
) else if not defined _oMSI if %_NoEditionChange%==0 (
|
||||||
echo: %%E | find /i "-%2-" %nul% && (
|
echo: %%E | find /i "-%2-" %nul% && (
|
||||||
set key=%%B
|
set key=%%B
|
||||||
set _altoffid=%%D
|
set _altoffid=%%D
|
||||||
@ -12428,21 +12419,6 @@ set _allactid=!_allactid! %%A
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if %1==getmsiprod if "%oVer%"=="%%C" (
|
|
||||||
for /f "tokens=*" %%x in ('findstr /i /c:"%%A" "%_oBranding%"') do set "prodId=%%x"
|
|
||||||
set prodId=!prodId:"/>=!
|
|
||||||
set prodId=!prodId:~-4!
|
|
||||||
if "%oVer%"=="14" (
|
|
||||||
REM Exception case for Visio because wrong primary product ID is mentioned in Branding.xml
|
|
||||||
echo %%D | find /i "Visio" %nul% && set prodId=0057
|
|
||||||
)
|
|
||||||
reg query "%2\Registration\{%%A}" /v ProductCode %nul2% | find /i "-!prodId!-" %nul% && (
|
|
||||||
reg query "%2\Common\InstalledPackages" %nul2% | find /i "-!prodId!-" %nul% && (
|
|
||||||
if defined _oIds (set _oIds=!_oIds! %%D) else (set _oIds=%%D)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
exit /b
|
exit /b
|
||||||
|
@ -823,7 +823,6 @@ set _prids=
|
|||||||
set _config=
|
set _config=
|
||||||
set _version=
|
set _version=
|
||||||
set _License=
|
set _License=
|
||||||
set _oBranding=
|
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
@ -1077,20 +1076,11 @@ set "_common=%CommonProgramFiles%"
|
|||||||
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
||||||
set "_common2=%CommonProgramFiles(x86)%"
|
set "_common2=%CommonProgramFiles(x86)%"
|
||||||
|
|
||||||
for /r "%_common%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
|
||||||
if not defined _oBranding for /r "%_common2%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
|
||||||
|
|
||||||
call :msiofficedata %2
|
call :msiofficedata %2
|
||||||
|
|
||||||
echo:
|
echo:
|
||||||
echo Activating Office... [MSI ^| %_version% ^| %_oArch%]
|
echo Activating Office... [MSI ^| %_version% ^| %_oArch%]
|
||||||
|
|
||||||
if not defined _oBranding (
|
|
||||||
set error=1
|
|
||||||
call :dk_color %Red% "Checking BRANDING.XML [Not Found, aborting activation...]"
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
if not defined _oIds (
|
if not defined _oIds (
|
||||||
set error=1
|
set error=1
|
||||||
call :dk_color %Red% "Checking Installed Products [Product IDs not found, aborting activation...]"
|
call :dk_color %Red% "Checking Installed Products [Product IDs not found, aborting activation...]"
|
||||||
@ -2475,18 +2465,13 @@ for %%# in (
|
|||||||
) do (
|
) do (
|
||||||
for /f "tokens=1-5 delims=_" %%A in ("%%#") do (
|
for /f "tokens=1-5 delims=_" %%A in ("%%#") do (
|
||||||
|
|
||||||
set getIds=1
|
|
||||||
if "%oVer%"=="%%A" (
|
if "%oVer%"=="%%A" (
|
||||||
if /i "%2"=="getmsiret" (echo %%D | findstr /i "Volume VL" %nul% && set getIds=)
|
|
||||||
|
|
||||||
if defined getIds (
|
|
||||||
reg query "%1\Registration\{%%B}" /v ProductCode %nul2% | find /i "-%%C-" %nul% && (
|
reg query "%1\Registration\{%%B}" /v ProductCode %nul2% | find /i "-%%C-" %nul% && (
|
||||||
reg query "%1\Common\InstalledPackages" %nul2% | find /i "-%%C-" %nul% && (
|
reg query "%1\Common\InstalledPackages" %nul2% | find /i "-%%C-" %nul% && (
|
||||||
if defined _oIds (set _oIds=!_oIds! %%D) else (set _oIds=%%D)
|
if defined _oIds (set _oIds=!_oIds! %%D) else (set _oIds=%%D)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -1029,7 +1029,7 @@ set _prids=
|
|||||||
set _config=
|
set _config=
|
||||||
set _version=
|
set _version=
|
||||||
set _License=
|
set _License=
|
||||||
set _oBranding=
|
set _oMSI=
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
@ -1143,7 +1143,7 @@ exit /b
|
|||||||
for %%# in (%_oIds%) do (
|
for %%# in (%_oIds%) do (
|
||||||
|
|
||||||
set skipprocess=
|
set skipprocess=
|
||||||
if %_NoEditionChange%==1 if not defined _oBranding (
|
if %_NoEditionChange%==1 if not defined _oMSI (
|
||||||
set foundprod=
|
set foundprod=
|
||||||
call :ksdata chkprod %%#
|
call :ksdata chkprod %%#
|
||||||
if not defined foundprod (
|
if not defined foundprod (
|
||||||
@ -1192,7 +1192,7 @@ if not "!key!"=="" (
|
|||||||
echo "!allapps!" | find /i "!_actid!" %nul1% || call :oh_installlic
|
echo "!allapps!" | find /i "!_actid!" %nul1% || call :oh_installlic
|
||||||
call :dk_inskey "[!key!] [!_prod!]"
|
call :dk_inskey "[!key!] [!_prod!]"
|
||||||
) else (
|
) else (
|
||||||
if not defined _oBranding (
|
if not defined _oMSI (
|
||||||
set error=1
|
set error=1
|
||||||
call :dk_color %Red% "Checking Product In Script [Office %oVer%.0 !_prod! not found in script]"
|
call :dk_color %Red% "Checking Product In Script [Office %oVer%.0 !_prod! not found in script]"
|
||||||
call :dk_color %Blue% "Make sure you are using Latest MAS script."
|
call :dk_color %Blue% "Make sure you are using Latest MAS script."
|
||||||
@ -1215,6 +1215,7 @@ exit /b
|
|||||||
:: Process Office MSI Version
|
:: Process Office MSI Version
|
||||||
|
|
||||||
call :ks_reset
|
call :ks_reset
|
||||||
|
set _oMSI=1
|
||||||
|
|
||||||
if "%1"=="14" (
|
if "%1"=="14" (
|
||||||
call :dk_actids 59a52881-a989-479d-af46-f275c6370663
|
call :dk_actids 59a52881-a989-479d-af46-f275c6370663
|
||||||
@ -1235,21 +1236,11 @@ set "_common=%CommonProgramFiles%"
|
|||||||
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
||||||
set "_common2=%CommonProgramFiles(x86)%"
|
set "_common2=%CommonProgramFiles(x86)%"
|
||||||
|
|
||||||
for /r "%_common%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
call :msiofficedata %2
|
||||||
if not defined _oBranding for /r "%_common2%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
|
||||||
|
|
||||||
call :ksdata getmsiprod %2
|
|
||||||
call :msiofficedata %2 getmsiret
|
|
||||||
|
|
||||||
echo:
|
echo:
|
||||||
echo Processing Office... [MSI ^| %_version% ^| %_oArch%]
|
echo Processing Office... [MSI ^| %_version% ^| %_oArch%]
|
||||||
|
|
||||||
if not defined _oBranding (
|
|
||||||
set error=1
|
|
||||||
call :dk_color %Red% "Checking BRANDING.XML [Not Found. Aborting activation...]"
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
if not defined _oIds (
|
if not defined _oIds (
|
||||||
set error=1
|
set error=1
|
||||||
call :dk_color %Red% "Checking Installed Products [Product IDs not found. Aborting activation...]"
|
call :dk_color %Red% "Checking Installed Products [Product IDs not found. Aborting activation...]"
|
||||||
@ -3450,18 +3441,13 @@ for %%# in (
|
|||||||
) do (
|
) do (
|
||||||
for /f "tokens=1-5 delims=_" %%A in ("%%#") do (
|
for /f "tokens=1-5 delims=_" %%A in ("%%#") do (
|
||||||
|
|
||||||
set getIds=1
|
|
||||||
if "%oVer%"=="%%A" (
|
if "%oVer%"=="%%A" (
|
||||||
if /i "%2"=="getmsiret" (echo %%D | findstr /i "Volume VL" %nul% && set getIds=)
|
|
||||||
|
|
||||||
if defined getIds (
|
|
||||||
reg query "%1\Registration\{%%B}" /v ProductCode %nul2% | find /i "-%%C-" %nul% && (
|
reg query "%1\Registration\{%%B}" /v ProductCode %nul2% | find /i "-%%C-" %nul% && (
|
||||||
reg query "%1\Common\InstalledPackages" %nul2% | find /i "-%%C-" %nul% && (
|
reg query "%1\Common\InstalledPackages" %nul2% | find /i "-%%C-" %nul% && (
|
||||||
if defined _oIds (set _oIds=!_oIds! %%D) else (set _oIds=%%D)
|
if defined _oIds (set _oIds=!_oIds! %%D) else (set _oIds=%%D)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -3734,7 +3720,7 @@ if /i "%2"=="%%D" (
|
|||||||
set key=%%B
|
set key=%%B
|
||||||
set _actid=%%A
|
set _actid=%%A
|
||||||
set _allactid=!_allactid! %%A
|
set _allactid=!_allactid! %%A
|
||||||
) else if not defined _oBranding if %_NoEditionChange%==0 (
|
) else if not defined _oMSI if %_NoEditionChange%==0 (
|
||||||
echo: %%E | find /i "-%2-" %nul% && (
|
echo: %%E | find /i "-%2-" %nul% && (
|
||||||
set key=%%B
|
set key=%%B
|
||||||
set _altoffid=%%D
|
set _altoffid=%%D
|
||||||
@ -3744,21 +3730,6 @@ set _allactid=!_allactid! %%A
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if %1==getmsiprod if "%oVer%"=="%%C" (
|
|
||||||
for /f "tokens=*" %%x in ('findstr /i /c:"%%A" "%_oBranding%"') do set "prodId=%%x"
|
|
||||||
set prodId=!prodId:"/>=!
|
|
||||||
set prodId=!prodId:~-4!
|
|
||||||
if "%oVer%"=="14" (
|
|
||||||
REM Exception case for Visio because wrong primary product ID is mentioned in Branding.xml
|
|
||||||
echo %%D | find /i "Visio" %nul% && set prodId=0057
|
|
||||||
)
|
|
||||||
reg query "%2\Registration\{%%A}" /v ProductCode %nul2% | find /i "-!prodId!-" %nul% && (
|
|
||||||
reg query "%2\Common\InstalledPackages" %nul2% | find /i "-!prodId!-" %nul% && (
|
|
||||||
if defined _oIds (set _oIds=!_oIds! %%D) else (set _oIds=%%D)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
exit /b
|
exit /b
|
||||||
|
@ -1499,7 +1499,6 @@ set _prids=
|
|||||||
set _config=
|
set _config=
|
||||||
set _version=
|
set _version=
|
||||||
set _License=
|
set _License=
|
||||||
set _oBranding=
|
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
@ -1679,9 +1678,6 @@ set "_common=%CommonProgramFiles%"
|
|||||||
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
||||||
set "_common2=%CommonProgramFiles(x86)%"
|
set "_common2=%CommonProgramFiles(x86)%"
|
||||||
|
|
||||||
for /r "%_common%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
|
||||||
if not defined _oBranding for /r "%_common2%\Microsoft Shared\OFFICE%oVer%\" %%f in (BRANDING.XML) do if exist "%%f" set "_oBranding=%%f"
|
|
||||||
|
|
||||||
if exist "%_common%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms" (
|
if exist "%_common%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms" (
|
||||||
set "pkeypath=%_common%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms"
|
set "pkeypath=%_common%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms"
|
||||||
) else if exist "%_common2%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms" (
|
) else if exist "%_common2%\Microsoft Shared\OFFICE%oVer%\Office Setup Controller\pkeyconfig-office.xrm-ms" (
|
||||||
@ -1693,12 +1689,6 @@ call :msiofficedata %2
|
|||||||
echo:
|
echo:
|
||||||
echo Processing Office... [MSI ^| %_version% ^| %_oArch%]
|
echo Processing Office... [MSI ^| %_version% ^| %_oArch%]
|
||||||
|
|
||||||
if not defined _oBranding (
|
|
||||||
set error=1
|
|
||||||
call :dk_color %Red% "Checking BRANDING.XML [Not Found. Aborting activation...]"
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
if not defined _oIds (
|
if not defined _oIds (
|
||||||
set error=1
|
set error=1
|
||||||
call :dk_color %Red% "Checking Installed Products [Product IDs not found. Aborting activation...]"
|
call :dk_color %Red% "Checking Installed Products [Product IDs not found. Aborting activation...]"
|
||||||
@ -6747,6 +6737,24 @@ function Get-WmiInfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function slGetSkuInfo($SkuId) {
|
||||||
|
$t = [AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1).DefineDynamicModule(2, $False).DefineType(0)
|
||||||
|
$t.DefinePInvokeMethod('SLOpen', 'slc.dll', 22, 1, [Int32], @([IntPtr].MakeByRefType()), 1, 3).SetImplementationFlags(128)
|
||||||
|
$t.DefinePInvokeMethod('SLClose', 'slc.dll', 22, 1, [IntPtr], @([IntPtr]), 1, 3).SetImplementationFlags(128)
|
||||||
|
$t.DefinePInvokeMethod('SLGetProductSkuInformation', 'slc.dll', 22, 1, [Int32], @([IntPtr], [Guid].MakeByRefType(), [String], [UInt32].MakeByRefType(), [UInt32].MakeByRefType(), [IntPtr].MakeByRefType()), 1, 3).SetImplementationFlags(128)
|
||||||
|
$w = $t.CreateType()
|
||||||
|
$hSLC = 0
|
||||||
|
try {
|
||||||
|
[void]$w::SLOpen([ref]$hSLC)
|
||||||
|
$c = 0; $b = 0
|
||||||
|
$r = $w::SLGetProductSkuInformation($hSLC, [ref][Guid]$SkuId, "msft:sl/EUL/PHONE/PUBLIC", [ref]$null, [ref]$c, [ref]$b)
|
||||||
|
return ($r -eq 0)
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
[void]$w::SLClose($hSLC)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($env:resetstuff -eq $null) {
|
if ($env:resetstuff -eq $null) {
|
||||||
foreach ($tsactid in $tsactids) {
|
foreach ($tsactid in $tsactids) {
|
||||||
try {
|
try {
|
||||||
@ -6757,6 +6765,13 @@ if ($env:resetstuff -eq $null) {
|
|||||||
$prodName = if ($nameParts.Count -gt 1) { ($nameParts[1].Trim() -split '[ ,]')[0] } else { $null }
|
$prodName = if ($nameParts.Count -gt 1) { ($nameParts[1].Trim() -split '[ ,]')[0] } else { $null }
|
||||||
}
|
}
|
||||||
[LibTSforge.Modifiers.GenPKeyInstall]::InstallGenPKey($ver, $prod, $tsactid)
|
[LibTSforge.Modifiers.GenPKeyInstall]::InstallGenPKey($ver, $prod, $tsactid)
|
||||||
|
if ($prodName -match 'Office' -and -not (slGetSkuInfo($tsactid))) {
|
||||||
|
$licenseStatus = Get-WmiInfo -tsactid $tsactid -property "LicenseStatus"
|
||||||
|
if ($licenseStatus -eq 1) {
|
||||||
|
Write-Host "[$prodName] is already permanently activated." -ForegroundColor White -BackgroundColor DarkGreen
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
[LibTSforge.Activators.ZeroCID]::Activate($ver, $prod, $tsactid)
|
[LibTSforge.Activators.ZeroCID]::Activate($ver, $prod, $tsactid)
|
||||||
$licenseStatus = Get-WmiInfo -tsactid $tsactid -property "LicenseStatus"
|
$licenseStatus = Get-WmiInfo -tsactid $tsactid -property "LicenseStatus"
|
||||||
if ($licenseStatus -eq 1) {
|
if ($licenseStatus -eq 1) {
|
||||||
@ -7170,18 +7185,13 @@ for %%# in (
|
|||||||
) do (
|
) do (
|
||||||
for /f "tokens=1-5 delims=_" %%A in ("%%#") do (
|
for /f "tokens=1-5 delims=_" %%A in ("%%#") do (
|
||||||
|
|
||||||
set getIds=1
|
|
||||||
if "%oVer%"=="%%A" (
|
if "%oVer%"=="%%A" (
|
||||||
if /i "%2"=="getmsiret" (echo %%D | findstr /i "Volume VL" %nul% && set getIds=)
|
|
||||||
|
|
||||||
if defined getIds (
|
|
||||||
reg query "%1\Registration\{%%B}" /v ProductCode %nul2% | find /i "-%%C-" %nul% && (
|
reg query "%1\Registration\{%%B}" /v ProductCode %nul2% | find /i "-%%C-" %nul% && (
|
||||||
reg query "%1\Common\InstalledPackages" %nul2% | find /i "-%%C-" %nul% && (
|
reg query "%1\Common\InstalledPackages" %nul2% | find /i "-%%C-" %nul% && (
|
||||||
if defined _oIds (set _oIds=!_oIds! %%D) else (set _oIds=%%D)
|
if defined _oIds (set _oIds=!_oIds! %%D) else (set _oIds=%%D)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user