mirror of
https://github.com/massgravel/Microsoft-Activation-Scripts.git
synced 2025-05-28 14:23:13 +00:00
3.1
Added Ohook support for OSPP based Office on Vista and later
This commit is contained in:
parent
b8ad749bac
commit
5872b7df53
13 changed files with 1320 additions and 828 deletions
|
@ -1,4 +1,4 @@
|
|||
@set masver=3.0
|
||||
@set masver=3.1
|
||||
@echo off
|
||||
|
||||
|
||||
|
@ -171,12 +171,27 @@ call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%trouble
|
|||
goto dk_done
|
||||
)
|
||||
|
||||
if %winbuild% LSS 9200 (
|
||||
%eline%
|
||||
if %winbuild% LSS 6001 (
|
||||
%nceline%
|
||||
echo Unsupported OS version detected [%winbuild%].
|
||||
echo Ohook Activation is supported only on Windows 8/10/11 and their server equivalents.
|
||||
echo MAS only supports Windows Vista/7/8/8.1/10/11 and their Server equivalents.
|
||||
if %winbuild% EQU 6000 (
|
||||
echo:
|
||||
call :dk_color %Blue% "Use Online KMS activation option instead."
|
||||
echo Windows Vista RTM is not supported because Powershell cannot be installed.
|
||||
echo Upgrade to Windows Vista SP1 or SP2.
|
||||
)
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
if not exist %ps% (
|
||||
%nceline%
|
||||
echo PowerShell is not installed in your system.
|
||||
if %winbuild% LSS 7600 (
|
||||
echo Install PowerShell using the following URL.
|
||||
echo:
|
||||
echo https://www.catalog.update.microsoft.com/Search.aspx?q=KB968930
|
||||
if %_unattended%==0 start https://www.catalog.update.microsoft.com/Search.aspx?q=KB968930
|
||||
)
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
|
@ -398,8 +413,8 @@ goto :oh_menu
|
|||
|
||||
cls
|
||||
if not defined terminal (
|
||||
mode 130, 32
|
||||
if exist "%SysPath%\spp\store_test\" mode 134, 32
|
||||
mode 140, 32
|
||||
if exist "%SysPath%\spp\store_test\" mode 140, 32
|
||||
%psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=32;$B.Height=300;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" %nul%
|
||||
)
|
||||
title Ohook Activation %masver%
|
||||
|
@ -408,9 +423,9 @@ echo:
|
|||
echo Initializing...
|
||||
call :dk_chkmal
|
||||
|
||||
if not exist %SysPath%\sppsvc.exe (
|
||||
if not exist %SysPath%\%_slexe% (
|
||||
%eline%
|
||||
echo [%SysPath%\sppsvc.exe] file is missing, aborting...
|
||||
echo [%SysPath%\%_slexe%] file is missing, aborting...
|
||||
echo:
|
||||
call :dk_color %Blue% "Go back to Main Menu, select Troubleshoot and run DISM Restore and SFC Scan options."
|
||||
call :dk_color %Blue% "After that, restart system and try activation again."
|
||||
|
@ -442,7 +457,7 @@ call :dk_showosinfo
|
|||
|
||||
echo Initiating Diagnostic Tests...
|
||||
|
||||
set "_serv=sppsvc Winmgmt"
|
||||
set "_serv=%_slser% Winmgmt"
|
||||
|
||||
:: Software Protection
|
||||
:: Windows Management Instrumentation
|
||||
|
@ -451,16 +466,15 @@ set notwinact=1
|
|||
set ohookact=1
|
||||
call :dk_errorcheck
|
||||
|
||||
call :oh_setspp
|
||||
|
||||
:: Check unsupported office versions
|
||||
|
||||
set o14msi=
|
||||
set o14c2r=
|
||||
set o16uwp=
|
||||
|
||||
set _68=HKLM\SOFTWARE\Microsoft\Office
|
||||
set _86=HKLM\SOFTWARE\Wow6432Node\Microsoft\Office
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_86%\14.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set o14msi=Office 2010 MSI )
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_68%\14.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set o14msi=Office 2010 MSI )
|
||||
%nul% reg query %_68%\14.0\CVH /f Click2run /k && set o14c2r=Office 2010 C2R
|
||||
%nul% reg query %_86%\14.0\CVH /f Click2run /k && set o14c2r=Office 2010 C2R
|
||||
|
||||
|
@ -468,10 +482,10 @@ if %winbuild% GEQ 10240 (
|
|||
for /f "delims=" %%a in ('%psc% "(Get-AppxPackage -name 'Microsoft.Office.Desktop' | Select-Object -ExpandProperty InstallLocation)" %nul6%') do (if exist "%%a\Integration\Integrator.exe" set o16uwp=Office UWP )
|
||||
)
|
||||
|
||||
if not "%o14msi%%o14c2r%%o16uwp%"=="" (
|
||||
if not "%o14c2r%%o16uwp%"=="" (
|
||||
echo:
|
||||
call :dk_color %Red% "Checking Unsupported Office Install [ %o14msi%%o14c2r%%o16uwp%]"
|
||||
if not "%o14msi%%o16uwp%"=="" call :dk_color %Blue% "Use Online KMS option to activate it."
|
||||
call :dk_color %Red% "Checking Unsupported Office Install [ %o14c2r%%o16uwp%]"
|
||||
if not "%o16uwp%"=="" call :dk_color %Blue% "Use TSforge option to activate it."
|
||||
)
|
||||
|
||||
if %winbuild% GEQ 10240 %psc% "Get-AppxPackage -name "Microsoft.MicrosoftOfficeHub"" | find /i "Office" %nul1% && (
|
||||
|
@ -502,10 +516,10 @@ set o15c2r=
|
|||
set error=1
|
||||
)
|
||||
|
||||
if "%o16c2r%%o15c2r%%o16msi%%o15msi%"=="" (
|
||||
if "%o16c2r%%o15c2r%%o16msi%%o15msi%%o14msi%"=="" (
|
||||
set error=1
|
||||
echo:
|
||||
if not "%o14msi%%o14c2r%%o16uwp%"=="" (
|
||||
if not "%o14c2r%%o16uwp%"=="" (
|
||||
call :dk_color %Red% "Checking Supported Office Install [Not Found]"
|
||||
) else (
|
||||
call :dk_color %Red% "Checking Installed Office [Not Found]"
|
||||
|
@ -524,8 +538,8 @@ goto dk_done
|
|||
)
|
||||
|
||||
set multioffice=
|
||||
if not "%o16c2r%%o15c2r%%o16msi%%o15msi%"=="1" set multioffice=1
|
||||
if not "%o14msi%%o14c2r%%o16uwp%"=="" set multioffice=1
|
||||
if not "%o16c2r%%o15c2r%%o16msi%%o15msi%%o14msi%"=="1" set multioffice=1
|
||||
if not "%o14c2r%%o16uwp%"=="" set multioffice=1
|
||||
|
||||
if defined multioffice (
|
||||
call :dk_color %Gray% "Checking Multiple Office Install [Found, its recommended to install only one version]"
|
||||
|
@ -569,12 +583,8 @@ set "_oIntegrator=%_oRoot%\integration\integrator.exe"
|
|||
|
||||
if /i "%_oArch%"=="x64" (set "_hookPath=%_oRoot%\vfs\System" & set "_hook=sppc64.dll")
|
||||
if /i "%_oArch%"=="x86" (set "_hookPath=%_oRoot%\vfs\SystemX86" & set "_hook=sppc32.dll")
|
||||
if not "%osarch%"=="x86" (
|
||||
if /i "%_oArch%"=="x64" set "_sppcPath=%SystemRoot%\System32\sppc.dll"
|
||||
if /i "%_oArch%"=="x86" set "_sppcPath=%SystemRoot%\SysWOW64\sppc.dll"
|
||||
) else (
|
||||
set "_sppcPath=%SystemRoot%\System32\sppc.dll"
|
||||
)
|
||||
|
||||
call :oh_ppcpath
|
||||
|
||||
echo:
|
||||
echo Activating Office... [C2R ^| %_version% ^| %_oArch%]
|
||||
|
@ -585,9 +595,20 @@ set error=1
|
|||
goto :starto16c2r
|
||||
)
|
||||
|
||||
if defined noOsppc (
|
||||
call :dk_color %Red% "Checking OSPPC.DLL [Not found. Aborting activation...]"
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
set error=1
|
||||
goto :starto16c2r
|
||||
)
|
||||
|
||||
call :oh_fixprids
|
||||
call :oh_process
|
||||
if defined isOspp (
|
||||
call :oh_hookinstall_ospp
|
||||
) else (
|
||||
call :oh_hookinstall
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
|
@ -619,12 +640,8 @@ set "_oIntegrator=%_oRoot%\integration\integrator.exe"
|
|||
|
||||
if /i "%_oArch%"=="x64" (set "_hookPath=%_oRoot%\vfs\System" & set "_hook=sppc64.dll")
|
||||
if /i "%_oArch%"=="x86" (set "_hookPath=%_oRoot%\vfs\SystemX86" & set "_hook=sppc32.dll")
|
||||
if not "%osarch%"=="x86" (
|
||||
if /i "%_oArch%"=="x64" set "_sppcPath=%SystemRoot%\System32\sppc.dll"
|
||||
if /i "%_oArch%"=="x86" set "_sppcPath=%SystemRoot%\SysWOW64\sppc.dll"
|
||||
) else (
|
||||
set "_sppcPath=%SystemRoot%\System32\sppc.dll"
|
||||
)
|
||||
|
||||
call :oh_ppcpath
|
||||
|
||||
echo:
|
||||
echo Activating Office... [C2R ^| %_version% %_AudienceData%^| %_oArch%]
|
||||
|
@ -635,9 +652,20 @@ set error=1
|
|||
goto :startmsi
|
||||
)
|
||||
|
||||
if defined noOsppc (
|
||||
call :dk_color %Red% "Checking OSPPC.DLL [Not found. Aborting activation...]"
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
set error=1
|
||||
goto :startmsi
|
||||
)
|
||||
|
||||
call :oh_fixprids
|
||||
call :oh_process
|
||||
if defined isOspp (
|
||||
call :oh_hookinstall_ospp
|
||||
) else (
|
||||
call :oh_hookinstall
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
|
@ -674,6 +702,9 @@ echo Adding a Registry to Prevent Banner [Successful]
|
|||
|
||||
:startmsi
|
||||
|
||||
if defined o14msi call :oh_setspp 14
|
||||
if defined o14msi call :oh_processmsi 14 %o14msi_reg%
|
||||
call :oh_setspp
|
||||
if defined o15msi call :oh_processmsi 15 %o15msi_reg%
|
||||
if defined o16msi call :oh_processmsi 16 %o16msi_reg%
|
||||
|
||||
|
@ -705,7 +736,7 @@ goto :dk_done
|
|||
:oh_uninstall
|
||||
|
||||
cls
|
||||
if not defined terminal mode 99, 32
|
||||
if not defined terminal mode 145, 32
|
||||
title Uninstall Ohook Activation %masver%
|
||||
|
||||
set _present=
|
||||
|
@ -721,6 +752,7 @@ if defined o16c2r_reg (for /f "skip=2 tokens=2*" %%a in ('"reg query %o16c2r_reg
|
|||
if defined o15c2r_reg (for /f "skip=2 tokens=2*" %%a in ('"reg query %o15c2r_reg% /v InstallPath" %nul6%') do (set "_15CHook=%%b\root\vfs"))
|
||||
if defined o16msi_reg (for /f "skip=2 tokens=2*" %%a in ('"reg query %o16msi_reg%\Common\InstallRoot /v Path" %nul6%') do (set "_16MHook=%%b"))
|
||||
if defined o15msi_reg (for /f "skip=2 tokens=2*" %%a in ('"reg query %o15msi_reg%\Common\InstallRoot /v Path" %nul6%') do (set "_15MHook=%%b"))
|
||||
if defined o14msi_reg (for /f "skip=2 tokens=2*" %%a in ('"reg query %o14msi_reg%\Common\InstallRoot /v Path" %nul6%') do (set "_14MHook=%%b"))
|
||||
|
||||
if defined _16CHook (if exist "%_16CHook%\System\sppc*dll" (set _present=1& del /s /f /q "%_16CHook%\System\sppc*dll" & if exist "%_16CHook%\System\sppc*dll" set _unerror=1))
|
||||
if defined _16CHook (if exist "%_16CHook%\SystemX86\sppc*dll" (set _present=1& del /s /f /q "%_16CHook%\SystemX86\sppc*dll" & if exist "%_16CHook%\SystemX86\sppc*dll" set _unerror=1))
|
||||
|
@ -728,8 +760,9 @@ if defined _15CHook (if exist "%_15CHook%\System\sppc*dll" (set _present=1& d
|
|||
if defined _15CHook (if exist "%_15CHook%\SystemX86\sppc*dll" (set _present=1& del /s /f /q "%_15CHook%\SystemX86\sppc*dll" & if exist "%_15CHook%\SystemX86\sppc*dll" set _unerror=1))
|
||||
if defined _16MHook (if exist "%_16MHook%sppc*dll" (set _present=1& del /s /f /q "%_16MHook%sppc*dll" & if exist "%_16MHook%sppc*dll" set _unerror=1))
|
||||
if defined _15MHook (if exist "%_15MHook%sppc*dll" (set _present=1& del /s /f /q "%_15MHook%sppc*dll" & if exist "%_15MHook%sppc*dll" set _unerror=1))
|
||||
if defined _14MHook (if exist "%_14MHook%sppc*dll" (set _present=1& del /s /f /q "%_14MHook%sppc*dll" & if exist "%_14MHook%sppc*dll" set _unerror=1))
|
||||
|
||||
for %%# in (15 16) do (
|
||||
for %%# in (14 15 16) do (
|
||||
for %%A in ("%ProgramFiles%" "%ProgramW6432%" "%ProgramFiles(x86)%") do (
|
||||
if exist "%%~A\Microsoft Office\Office%%#\sppc*dll" (set _present=1& del /s /f /q "%%~A\Microsoft Office\Office%%#\sppc*dll" & if exist "%%~A\Microsoft Office\Office%%#\sppc*dll" set _unerror=1)
|
||||
)
|
||||
|
@ -743,6 +776,31 @@ if exist "%%~A\Microsoft %%~G\root\vfs\%%#\sppc*dll" (set _present=1& del /s /f
|
|||
)
|
||||
)
|
||||
|
||||
::==================================
|
||||
|
||||
for %%# in (OSPPC.DLL sppcs.dll) do (
|
||||
for %%A in ("%CommonProgramFiles%" "%CommonProgramW6432%" "%CommonProgramFiles(x86)%") do (
|
||||
for %%G in ("%%~A\Microsoft Shared\OfficeSoftwareProtectionPlatform\%%#") do (
|
||||
set size=0
|
||||
set size=%%~zG
|
||||
if !size! GEQ 1 if !size! LSS 100000 (
|
||||
set _present=1
|
||||
del /f /q "%%~G"
|
||||
if exist "%%~G" (move /y "%%~G" "!_ttemp!\needsToBeDeleted%random%" %nul%)
|
||||
if exist "%%~G" (set _unerror=1) else (echo Deleted file - %%~G)
|
||||
)
|
||||
if /i sppcs.dll==%%# if !size! GEQ 100000 (
|
||||
move /y "%%~G" "%%~A\Microsoft Shared\OfficeSoftwareProtectionPlatform\OSPPC.DLL" %nul%
|
||||
if exist "%%~G" (move /y "%%~A\Microsoft Shared\OfficeSoftwareProtectionPlatform\OSPPC.DLL" "!_ttemp!\needsToBeDeleted%random%" %nul%)
|
||||
move /y "%%~G" "%%~A\Microsoft Shared\OfficeSoftwareProtectionPlatform\OSPPC.DLL" %nul%
|
||||
if exist "%%~G" (set _unerror=1&echo Failed to rename sppcs.dll back to "%%~A\Microsoft Shared\OfficeSoftwareProtectionPlatform\OSPPC.DLL") else (echo Renamed sppcs.dll back to "%%~A\Microsoft Shared\OfficeSoftwareProtectionPlatform\OSPPC.DLL")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
::==================================
|
||||
|
||||
reg query HKCU\Software\Microsoft\Office\16.0\Common\Licensing\Resiliency %nul% && (
|
||||
echo:
|
||||
echo Deleting - Registry keys for skipping license check
|
||||
|
@ -772,6 +830,8 @@ reg unload HKU\%%# %nul%
|
|||
)
|
||||
)
|
||||
|
||||
::==================================
|
||||
|
||||
set "kmskey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663"
|
||||
reg query "%kmskey%" %nul% && (
|
||||
echo:
|
||||
|
@ -818,6 +878,7 @@ set _oLPath=
|
|||
set _hookPath=
|
||||
set _hook=
|
||||
set _sppcPath=
|
||||
set _osppPath=
|
||||
set _actid=
|
||||
set _prod=
|
||||
set _lic=
|
||||
|
@ -836,6 +897,7 @@ set o16c2r=
|
|||
set o15c2r=
|
||||
set o16msi=
|
||||
set o15msi=
|
||||
set o14msi=
|
||||
|
||||
set _68=HKLM\SOFTWARE\Microsoft\Office
|
||||
set _86=HKLM\SOFTWARE\Wow6432Node\Microsoft\Office
|
||||
|
@ -849,6 +911,52 @@ for /f "skip=2 tokens=2*" %%a in ('"reg query %_86%\16.0\Common\InstallRoot /v P
|
|||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_68%\16.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set o16msi=1&set o16msi_reg=%_68%\16.0)
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_86%\15.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set o15msi=1&set o15msi_reg=%_86%\15.0)
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_68%\15.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set o15msi=1&set o15msi_reg=%_68%\15.0)
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_86%\14.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set o14msi=1&set o14msi_reg=%_86%\14.0)
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_68%\14.0\Common\InstallRoot /v Path" %nul6%') do if exist "%%b\EntityPicker.dll" (set o14msi=1&set o14msi_reg=%_68%\14.0)
|
||||
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:oh_ppcpath
|
||||
|
||||
if not defined isOspp (
|
||||
if not "%osarch%"=="x86" (
|
||||
if /i "%_oArch%"=="x64" set "_sppcPath=%SystemRoot%\System32\sppc.dll"
|
||||
if /i "%_oArch%"=="x86" set "_sppcPath=%SystemRoot%\SysWOW64\sppc.dll"
|
||||
) else (
|
||||
set "_sppcPath=%SystemRoot%\System32\sppc.dll"
|
||||
)
|
||||
)
|
||||
|
||||
set noOsppc=
|
||||
set _hook68=
|
||||
set _hook86=
|
||||
set _osppPath68=
|
||||
set _osppPath86=
|
||||
|
||||
if defined isOspp (
|
||||
if not "%osarch%"=="x86" (
|
||||
if /i "%_oArch%"=="x64" (
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform /v Path" %nul6%') do (set "_osppPath68=%%b")
|
||||
if not exist "!_osppPath68!OSPPC.DLL" set noOsppc=1
|
||||
)
|
||||
if /i "%_oArch%"=="x86" (
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform /v Path" %nul6%') do (set "_osppPath68=%%b")
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\OfficeSoftwareProtectionPlatform /v Path" %nul6%') do (set "_osppPath86=%%b")
|
||||
if not exist "!_osppPath68!OSPPC.DLL" set noOsppc=1
|
||||
if not exist "!_osppPath86!OSPPC.DLL" set noOsppc=1
|
||||
)
|
||||
) else (
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform /v Path" %nul6%') do (set "_osppPath86=%%b")
|
||||
if not exist "!_osppPath86!OSPPC.DLL" set noOsppc=1
|
||||
)
|
||||
if "!_osppPath68:~-1!"=="\" set "_osppPath68=!_osppPath68:~0,-1!"
|
||||
if "!_osppPath86:~-1!"=="\" set "_osppPath86=!_osppPath86:~0,-1!"
|
||||
)
|
||||
|
||||
if defined _osppPath68 set _hook68=sppc64.dll
|
||||
if defined _osppPath86 set _hook86=sppc32.dll
|
||||
|
||||
exit /b
|
||||
|
||||
|
@ -944,15 +1052,24 @@ set hasherror=
|
|||
if %_hook%==sppc32.dll set offset=2564
|
||||
if %_hook%==sppc64.dll set offset=3076
|
||||
|
||||
del /s /q "%_hookPath%\sppcs.dll" %nul%
|
||||
del /s /q "%_hookPath%\sppc.dll" %nul%
|
||||
::======================================
|
||||
|
||||
if exist "%_hookPath%\sppcs.dll" set "ierror=Remove Previous Ohook Install"
|
||||
if exist "%_hookPath%\sppc.dll" set "ierror=Remove Previous Ohook Install"
|
||||
:: Remove previous Install
|
||||
|
||||
for %%# in (sppcs.dll sppc.dll) do (
|
||||
del /f /q "%_hookPath%\%%#" %nul%
|
||||
if exist "%_hookPath%\%%#" (move /y "%_hookPath%\%%#" "!_ttemp!\needsToBeDeleted%random%" %nul%)
|
||||
if exist "%_hookPath%\%%#" (set "ierror=Remove Previous Ohook Install [%%#]")
|
||||
)
|
||||
|
||||
if defined ierror goto :oh_hookinstall_error
|
||||
|
||||
::======================================
|
||||
|
||||
mklink "%_hookPath%\sppcs.dll" "%_sppcPath%" %nul%
|
||||
if not %errorlevel%==0 (
|
||||
if not defined ierror set ierror=mklink
|
||||
if not exist "%_hookPath%\sppcs.dll" (
|
||||
set ierror=mklink sppcs.dll
|
||||
goto :oh_hookinstall_error
|
||||
)
|
||||
|
||||
set exhook=
|
||||
|
@ -967,17 +1084,122 @@ popd
|
|||
call :oh_extractdll "%_hookPath%\sppc.dll" "%offset%"
|
||||
)
|
||||
)
|
||||
if not exist "%_hookPath%\sppc.dll" (if not defined ierror set ierror=Copy)
|
||||
if not exist "%_hookPath%\sppc.dll" (
|
||||
set ierror=Copy
|
||||
goto :oh_hookinstall_error
|
||||
)
|
||||
|
||||
echo:
|
||||
if not defined ierror (
|
||||
echo Symlinking System's sppc.dll to ["%_hookPath%\sppcs.dll"] [Successful]
|
||||
echo Symlinking System's sppc.dll ["%_hookPath%\sppcs.dll"] [Successful]
|
||||
if defined exhook (
|
||||
echo Copying Custom %_hook% to ["%_hookPath%\sppc.dll"] [Successful]
|
||||
) else (
|
||||
echo Extracting Custom %_hook% to ["%_hookPath%\sppc.dll"] [Successful]
|
||||
)
|
||||
|
||||
goto :oh_hookinstall_error
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:oh_hookinstall_ospp
|
||||
|
||||
set ierror=
|
||||
set hasherror=
|
||||
|
||||
if defined _hook86 set offset86=2564
|
||||
if defined _hook68 set offset68=3076
|
||||
|
||||
::======================================
|
||||
|
||||
:: Remove previous Install
|
||||
|
||||
for %%# in (OSPPC.DLL sppcs.dll) do (
|
||||
for %%A in ("%_osppPath68%\%%#" "%_osppPath86%\%%#") do (
|
||||
set size=0
|
||||
set size=%%~zA
|
||||
if !size! GEQ 1 if !size! LSS 100000 (
|
||||
del /f /q "%%~A" %nul%
|
||||
if exist "%%~A" (move /y "%%~A" "!_ttemp!\needsToBeDeleted%random%" %nul%)
|
||||
if exist "%%~A" (set "ierror=Remove Previous Ohook Install [%%#]")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
if defined ierror goto :oh_hookinstall_error
|
||||
|
||||
for %%A in ("%_osppPath68%" "%_osppPath86%") do (
|
||||
if exist "%%~A\sppcs.dll" (move /y "%%~A\sppcs.dll" "%%~A\OSPPC.DLL" %nul%)
|
||||
if exist "%%~A\sppcs.dll" (
|
||||
move /y "%%~A\OSPPC.DLL" "!_ttemp!\needsToBeDeleted%random%" %nul%
|
||||
move /y "%%~A\sppcs.dll" "%%~A\OSPPC.DLL" %nul%
|
||||
)
|
||||
if exist "%%~A\sppcs.dll" (set "ierror=Move sppcs.dll back to OSPPC.DLL")
|
||||
)
|
||||
|
||||
del /f /q "%_hookPath%\sppcs.dll" %nul%
|
||||
if exist "%_hookPath%\sppcs.dll" (move /y "%_hookPath%\sppcs.dll" "!_ttemp!\needsToBeDeleted%random%" %nul%)
|
||||
if exist "%_hookPath%\sppcs.dll" (set "ierror=Remove Previous Ohook mklink sppcs.dll")
|
||||
|
||||
if defined ierror goto :oh_hookinstall_error
|
||||
|
||||
::======================================
|
||||
|
||||
if defined _osppPath68 (move /y "%_osppPath68%\OSPPC.DLL" "%_osppPath68%\sppcs.dll" %nul% & if not exist "%_osppPath68%\sppcs.dll" set ierror=1)
|
||||
if defined _osppPath86 (move /y "%_osppPath86%\OSPPC.DLL" "%_osppPath86%\sppcs.dll" %nul% & if not exist "%_osppPath86%\sppcs.dll" set ierror=1)
|
||||
|
||||
if defined ierror (
|
||||
set "ierror=Rename OSPPC.DLL"
|
||||
goto :oh_hookinstall_error
|
||||
)
|
||||
|
||||
if defined _osppPath68 if defined _osppPath86 (mklink "%_hookPath%\sppcs.dll" "%_osppPath86%\sppcs.dll" %nul%)
|
||||
if defined _osppPath68 if not defined _osppPath86 (mklink "%_hookPath%\sppcs.dll" "%_osppPath68%\sppcs.dll" %nul%)
|
||||
if defined _osppPath86 if not defined _osppPath68 (mklink "%_hookPath%\sppcs.dll" "%_osppPath86%\sppcs.dll" %nul%)
|
||||
|
||||
if not exist "%_hookPath%\sppcs.dll" (
|
||||
set ierror=mklink sppcs.dll
|
||||
goto :oh_hookinstall_error
|
||||
)
|
||||
|
||||
set exhook=
|
||||
if exist "!_work!\BIN\%_hook68%" if exist "!_work!\BIN\%_hook86%" set exhook=1
|
||||
|
||||
if defined exhook (
|
||||
pushd "!_work!\BIN\"
|
||||
if defined _osppPath68 (copy /y /b "%_hook68%" "%_osppPath68%\OSPPC.DLL" %nul%)
|
||||
if defined _osppPath86 (copy /y /b "%_hook86%" "%_osppPath86%\OSPPC.DLL" %nul%)
|
||||
popd
|
||||
) else (
|
||||
if defined _osppPath68 (set _hook=%_hook68%&call :oh_extractdll "%_osppPath68%\OSPPC.DLL" "%offset68%")
|
||||
if defined _osppPath86 (set _hook=%_hook86%&call :oh_extractdll "%_osppPath86%\OSPPC.DLL" "%offset86%")
|
||||
)
|
||||
|
||||
if defined _osppPath68 (if not exist "%_osppPath68%\OSPPC.DLL" set ierror=1)
|
||||
if defined _osppPath86 (if not exist "%_osppPath86%\OSPPC.DLL" set ierror=1)
|
||||
|
||||
if defined ierror (
|
||||
set ierror=Copy
|
||||
goto :oh_hookinstall_error
|
||||
)
|
||||
|
||||
echo:
|
||||
if defined _osppPath68 (echo Renaming OSPPC.DLL to sppcs.dll ["%_osppPath68%\sppcs.dll"])
|
||||
if defined _osppPath86 (echo Renaming OSPPC.DLL to sppcs.dll ["%_osppPath86%\sppcs.dll"])
|
||||
if defined exhook (
|
||||
if defined _osppPath68 (echo Copying Custom %_hook68% to ["%_osppPath68%\OSPPC.DLL"])
|
||||
if defined _osppPath86 (echo Copying Custom %_hook86% to ["%_osppPath86%\OSPPC.DLL"])
|
||||
) else (
|
||||
if defined _osppPath68 (echo Extracting Custom %_hook68% to ["%_osppPath68%\OSPPC.DLL"])
|
||||
if defined _osppPath86 (echo Extracting Custom %_hook86% to ["%_osppPath86%\OSPPC.DLL"])
|
||||
)
|
||||
|
||||
echo Symlinking Renamed sppcs.dll ["%_hookPath%\sppcs.dll"]
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:oh_hookinstall_error
|
||||
|
||||
if defined ierror (
|
||||
set error=1
|
||||
call :dk_color %Red% "Installing Ohook [Failed to %ierror%]"
|
||||
echo:
|
||||
|
@ -996,9 +1218,9 @@ if not defined exhook if not defined ierror (
|
|||
if defined hasherror (
|
||||
set error=1
|
||||
set ierror=1
|
||||
call :dk_color %Red% "Modifying Hash of Custom %_hook% [Failed]"
|
||||
call :dk_color %Red% "Modifying Hash of Custom sppcs.dll [Failed]"
|
||||
) else (
|
||||
echo Modifying Hash of Custom %_hook% [Successful]
|
||||
echo Modifying Hash of Custom sppcs.dll [Successful]
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -1006,6 +1228,26 @@ exit /b
|
|||
|
||||
::========================================================================================================================================
|
||||
|
||||
:oh_setspp
|
||||
|
||||
set isOspp=
|
||||
if %winbuild% GEQ 9200 (
|
||||
set spp=SoftwareLicensingProduct
|
||||
set sps=SoftwareLicensingService
|
||||
) else (
|
||||
set isOspp=1
|
||||
set spp=OfficeSoftwareProtectionProduct
|
||||
set sps=OfficeSoftwareProtectionService
|
||||
)
|
||||
if "%1"=="14" (
|
||||
set isOspp=1
|
||||
set spp=OfficeSoftwareProtectionProduct
|
||||
set sps=OfficeSoftwareProtectionService
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:oh_process
|
||||
|
||||
for %%# in (%_oIds%) do (
|
||||
|
@ -1025,10 +1267,11 @@ call :ohookdata getinfo !_prod!
|
|||
|
||||
if not "!key!"=="" (
|
||||
echo "!allapps!" | find /i "!_actid!" %nul1% || call :oh_installlic
|
||||
if not %oVer%==14 set generickey=1
|
||||
call :dk_inskey "[!key!] [!_prod!] [!_lic!]"
|
||||
) else (
|
||||
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! key not found in script]"
|
||||
call :dk_color %Blue% "Make sure you are using the latest version of MAS."
|
||||
set fixes=%fixes% %mas%
|
||||
call :dk_color %_Yellow% "%mas%"
|
||||
|
@ -1055,7 +1298,11 @@ exit /b
|
|||
:: Process Office MSI Version
|
||||
|
||||
call :oh_reset
|
||||
if "%1"=="14" (
|
||||
call :dk_actids 59a52881-a989-479d-af46-f275c6370663
|
||||
) else (
|
||||
call :dk_actids 0ff1ce15-a989-479d-af46-f275c6370663
|
||||
)
|
||||
|
||||
set oVer=%1
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %2\Common\InstallRoot /v Path" %nul6%') do (set "_oRoot=%%b")
|
||||
|
@ -1068,16 +1315,8 @@ if "%osarch%"=="x86" set _oArch=x86
|
|||
|
||||
if /i "%_oArch%"=="x64" (set "_hookPath=%_oRoot%" & set "_hook=sppc64.dll")
|
||||
if /i "%_oArch%"=="x86" (set "_hookPath=%_oRoot%" & set "_hook=sppc32.dll")
|
||||
if not "%osarch%"=="x86" (
|
||||
if /i "%_oArch%"=="x64" set "_sppcPath=%SystemRoot%\System32\sppc.dll"
|
||||
if /i "%_oArch%"=="x86" set "_sppcPath=%SystemRoot%\SysWOW64\sppc.dll"
|
||||
) else (
|
||||
set "_sppcPath=%SystemRoot%\System32\sppc.dll"
|
||||
)
|
||||
|
||||
set "_common=%CommonProgramFiles%"
|
||||
if defined PROCESSOR_ARCHITEW6432 set "_common=%CommonProgramW6432%"
|
||||
set "_common2=%CommonProgramFiles(x86)%"
|
||||
call :oh_ppcpath
|
||||
|
||||
call :msiofficedata %2
|
||||
|
||||
|
@ -1090,8 +1329,23 @@ call :dk_color %Red% "Checking Installed Products [Product IDs not f
|
|||
exit /b
|
||||
)
|
||||
|
||||
if defined noOsppc (
|
||||
call :dk_color %Red% "Checking OSPPC.DLL [Not found. Aborting activation...]"
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
set error=1
|
||||
exit /b
|
||||
)
|
||||
|
||||
if %oVer%==14 if defined SingleImage (
|
||||
echo Checking Installed Products [SingleImage product found, Professional Retail key will be used for activation]
|
||||
)
|
||||
|
||||
call :oh_process
|
||||
if defined isOspp (
|
||||
call :oh_hookinstall_ospp
|
||||
) else (
|
||||
call :oh_hookinstall
|
||||
)
|
||||
|
||||
exit /b
|
||||
|
||||
|
@ -1415,11 +1669,12 @@ set keyerror=%errorlevel%
|
|||
cmd /c exit /b %keyerror%
|
||||
if %keyerror% NEQ 0 set "keyerror=[0x%=ExitCode%]"
|
||||
|
||||
if defined generickey (set "keyecho=Installing Generic Product Key ") else (set "keyecho=Installing Product Key ")
|
||||
if %keyerror% EQU 0 (
|
||||
if %sps%==SoftwareLicensingService call :dk_refresh
|
||||
echo Installing Generic Product Key %~1 [Successful]
|
||||
echo %keyecho% %~1 [Successful]
|
||||
) else (
|
||||
call :dk_color %Red% "Installing Generic Product Key %~1 [Failed] %keyerror%"
|
||||
call :dk_color %Red% "%keyecho% %~1 [Failed] %keyerror%"
|
||||
if not defined error (
|
||||
if defined altapplist call :dk_color %Red% "Activation ID not found for this key."
|
||||
call :dk_color %Blue% "%_fixmsg%"
|
||||
|
@ -1428,6 +1683,7 @@ set showfix=1
|
|||
set error=1
|
||||
)
|
||||
|
||||
set generickey=
|
||||
exit /b
|
||||
|
||||
:: Get all products Activation IDs
|
||||
|
@ -1523,7 +1779,7 @@ exit /b
|
|||
:dk_product
|
||||
|
||||
set d1=%ref% $meth = $TypeBuilder.DefinePInvokeMethod('BrandingFormatString', 'winbrand.dll', 'Public, Static', 1, [String], @([String]), 1, 3);
|
||||
set d1=%d1% $meth.SetImplementationFlags(128); $TypeBuilder.CreateType()::BrandingFormatString('%%WINDOWS_LONG%%')
|
||||
set d1=%d1% $meth.SetImplementationFlags(128); $TypeBuilder.CreateType()::BrandingFormatString('%%WINDOWS_LONG%%') -replace [string][char]0xa9, '(C)' -replace [string][char]0xae, '(R)' -replace [string][char]0x2122, '(TM)'
|
||||
|
||||
set winos=
|
||||
for /f "delims=" %%s in ('"%psc% %d1%"') do if not errorlevel 1 (set winos=%%s)
|
||||
|
@ -1533,10 +1789,6 @@ if %winbuild% GEQ 22000 (
|
|||
set winos=!winos:Windows 10=Windows 11!
|
||||
)
|
||||
)
|
||||
if %winbuild% LSS 7600 (
|
||||
set "winos=!winos:VistaT=Vista!"
|
||||
set "winos=!winos:Serverr=Server!"
|
||||
)
|
||||
|
||||
exit /b
|
||||
|
||||
|
@ -2128,15 +2380,69 @@ exit /b
|
|||
|
||||
:: 1st column = Office version number
|
||||
:: 2nd column = Activation ID
|
||||
:: 3rd column = Generic key. Preference is given in this order, Retail:TB:Sub > Retail > OEM:NONSLP > Volume:MAK > Volume:GVLK
|
||||
:: 3rd column = For Office 2013 and later, the generated keys are listed. For Office 2010, the blocked keys sourced from the Internet are listed.
|
||||
:: For Office 2013 and later, key preference is given in this order, Retail:TB:Sub > Retail > OEM:NONSLP > Volume:MAK > Volume:GVLK
|
||||
:: For Office 2010, key preference is given in this order, Retail > Volume:MAK
|
||||
:: 4th column = Last part of license description
|
||||
:: 5th column = Edition
|
||||
:: 6th column = Other Edition IDs if they are part of the same primary product (For reference only)
|
||||
:: Separator = "_"
|
||||
|
||||
::===============
|
||||
|
||||
:: We couldn't find any keys (blocked/generic doesn't matter) for these Office 2010 products. If you have them, please share with us.
|
||||
|
||||
14_4eaff0d0-c6cb-4187-94f3-c7656d49a0aa_Retail________ExcelR_[HSExcelR]
|
||||
14_7004b7f0-6407-4f45-8eac-966e5f868bde_Retail________GrooveR
|
||||
14_fbf4ac36-31c8-4340-8666-79873129cf40_Retail________OutlookR
|
||||
14_133c8359-4e93-4241-8118-30bb18737ea0_Retail________PowerPointR_[HSPowerPointR]
|
||||
14_98677603-a668-4fa4-9980-3f1f05f78f69_Retail________PublisherR
|
||||
14_db3bbc9c-ce52-41d1-a46f-1a1d68059119_Retail________WordR_[HSWordR]
|
||||
14_dbe3aee0-5183-4ff7-8142-66050173cb01_Retail________SmallBusBasicsR_[SmallBusBasicsMSDNR]
|
||||
|
||||
:: These installers are not publicly available, so it doesn't matter if we don't have their keys.
|
||||
|
||||
14_19316117-30a8-4773-8fd9-7f7231f4e060_SubPrepid_____HomeBusinessSubR
|
||||
14_4d06f72e-fd50-4bc2-a24b-d448d7f17ef2_SubPrepid_____ProjectProSubR
|
||||
14_e98ef0c0-71c4-42ce-8305-287d8721e26c_SubPrepid_____ProPlusSubR
|
||||
14_14f5946a-debc-4716-babc-7e2c240fec08_Retail________MondoR
|
||||
14_533b656a-4425-480b-8e30-1a2358898350_MAK___________MondoVL
|
||||
|
||||
:ohookdata
|
||||
|
||||
set f=
|
||||
for %%# in (
|
||||
:: Office 2010
|
||||
14_4d463c2c-0505-4626-8cdb-a4da82e2d8ed_7KTYC-XR43P-C3MRW-BJKFD-XB%f%YPG_Retail________AccessR
|
||||
14_745fb377-0a59-4ca9-b9a9-c359557a2c4e_7XHPQ-BQMYG-YBP49-CY8B2-T8%f%CGQ_ByPass________AccessRuntimeR
|
||||
14_95ab3ec8-4106-4f9d-b632-03c019d1d23f_89RTQ-MT4GK-6CPTX-WWP7C-J9%f%KXR_MAK___________AccessVL
|
||||
14_71dc86ff-f056-40d0-8ffb-9592705c9b76_39TRR-C2F37-9WYJ2-MJQXH-B9%f%38K_MAK___________ExcelVL
|
||||
14_fdad0dfa-417d-4b4f-93e4-64ea8867b7fd_RCGT3-FPQDV-H49CD-PPDBF-TH%f%47G_MAK___________GrooveVL
|
||||
14_7b7d1f17-fdcb-4820-9789-9bec6e377821_3YR9B-D9W79-BY66R-R8XYP-QY%f%YYY_Retail________HomeBusinessR_[HomeBusinessDemoR]
|
||||
14_09e2d37e-474b-4121-8626-58ad9be5776f_3X43R-HHHXX-FRHRW-2M2WJ-8V%f%PHD_Retail________HomeStudentR_[HomeStudentDemoR]
|
||||
14_ef1da464-01c8-43a6-91af-e4e5713744f9_XDGJY-KFHW9-JWX9X-YM4GW-GC%f%8WR_Retail________InfoPathR
|
||||
14_85e22450-b741-430c-a172-a37962c938af_6GKT2-KMJPK-4RRBF-8VQKB-JB%f%6G6_MAK___________InfoPathVL
|
||||
14_3f7aa693-9a7e-44fc-9309-bb3d8e604925_2TG3P-9DB76-4YT99-8RXGD-CW%f%XBP_Retail________OneNoteR_[HSOneNoteR]
|
||||
14_6860b31f-6a67-48b8-84b9-e312b3485c4b_CV64P-F4VRH-BJ33D-PH6MR-X6%f%9RY_MAK___________OneNoteVL
|
||||
14_a9aeabd8-63b8-4079-a28e-f531807fd6b8_J8C9M-YXMH2-9CX44-2C3YG-V7%f%692_MAK___________OutlookVL
|
||||
14_acb51361-c0db-4895-9497-1831c41f31a6_GMBWM-WVX26-7WHV4-DB43D-WV%f%DY2_Retail________PersonalR_[PersonalDemoR,PersonalPrepaidR]
|
||||
14_38252940-718c-4aa6-81a4-135398e53851_HPBQP-RJHDR-Q3472-PT9Q6-PB%f%B72_MAK___________PowerPointVL
|
||||
14_8b559c37-0117-413e-921b-b853aeb6e210_367X9-9HP9R-TKHY6-DH4QH-K9%f%PY7_Retail________ProfessionalR_[ProfessionalAcadR,ProfessionalDemoR,OEM-SingleImage]
|
||||
14_725714d7-d58f-4d12-9fa8-35873c6f7215_6JD4G-KRW3J-48MGV-DM6FC-T9%f%WKR_Retail________ProjectProR_[ProjectProMSDNR]
|
||||
14_1cf57a59-c532-4e56-9a7d-ffa2fe94b474_3XDTH-MMGJ6-F9MKX-THP8D-G9%f%BP7_MAK___________ProjectProVL
|
||||
14_688f6589-2bd9-424e-a152-b13f36aa6de1_2W96V-RTQ9R-2BPVT-PT8H9-MV%f%68T_Retail________ProjectStdR
|
||||
14_11b39439-6b93-4642-9570-f2eb81be2238_4DTT4-D4MKX-23KFH-JKR6T-YK%f%G2J_MAK___________ProjectStdVL
|
||||
14_71af7e84-93e6-4363-9b69-699e04e74071_2J9H6-H4D3G-PCXD2-96XVM-TR%f%R73_Retail________ProPlusR_[ProPlusAcadR,ProPlusMSDNR,Sub4R]
|
||||
14_fdf3ecb9-b56f-43b2-a9b8-1b48b6bae1a7_6CD6C-9R8PB-T2D9Y-8RKKX-W7%f%DFK_MAK___________ProPlusVL_[ProPlusAcadVL]
|
||||
14_3d014759-b128-4466-9018-e80f6320d9d0_32YG9-3VX77-YXJVV-PRVFW-TT%f%8BV_MAK___________PublisherVL
|
||||
14_8090771e-d41a-4482-929e-de87f1f47e46_7VKXH-9BWCG-RPTBB-JBRV3-GR%f%HYC_MAK___________SmallBusBasicsVL
|
||||
14_b78df69e-0966-40b1-ae85-30a5134dedd0_H48K6-FB4Y6-P83GH-9J7XG-HD%f%KKX_ByPass________SPDR
|
||||
14_b6d2565c-341d-4768-ad7d-addbe00bb5ce_W3BTX-H6BW7-Q6DFW-BXFFY-8R%f%VJP_Retail________StandardR_[StandardMSDNR][KeyisforMSDNR]
|
||||
14_1f76e346-e0be-49bc-9954-70ec53a4fcfe_2XTQP-GDR7C-GTXPC-6W6PV-4R%f%XGC_MAK___________StandardVL_[StandardAcadVL]
|
||||
14_2745e581-565a-4670-ae90-6bf7c57ffe43_VXHHB-W7HBD-7M342-RJ7P8-CH%f%BD6_ByPass________StarterR
|
||||
14_66cad568-c2dc-459d-93ec-2f3cb967ee34_2RDPT-WPYQM-C2WXF-BTPDW-2J%f%2HM_Retail________VisioSIR_Prem[Pro,Std]
|
||||
14_36756cb8-8e69-4d11-9522-68899507cd6a_7PKFT-X2MKQ-GT6X2-8CB2W-CH%f%C9K_MAK___________VisioSIVL_Prem[Pro,Std]
|
||||
14_98d4050e-9c98-49bf-9be1-85e12eb3ab13_6J3XK-DFKGK-X373V-QJHYM-V3%f%FC2_MAK___________WordVL
|
||||
:: Office 2013
|
||||
15_ab4d047b-97cf-4126-a69f-34df08e2f254_B7RFY-7NXPK-Q4342-Y9X2H-3J%f%X4X_Retail________AccessRetail
|
||||
15_259de5be-492b-44b3-9d78-9645f848f7b0_X3XNB-HJB7K-66THH-8DWQ3-XH%f%GJP_Bypass________AccessRuntimeRetail
|
||||
|
@ -2375,6 +2681,49 @@ exit /b
|
|||
:msiofficedata
|
||||
|
||||
for %%# in (
|
||||
14_4d463c2c-0505-4626-8cdb-a4da82e2d8ed_0015_AccessR
|
||||
14_745fb377-0a59-4ca9-b9a9-c359557a2c4e_001C_AccessRuntimeR
|
||||
14_95ab3ec8-4106-4f9d-b632-03c019d1d23f_0015_AccessVL
|
||||
14_4eaff0d0-c6cb-4187-94f3-c7656d49a0aa_0016_ExcelR_[HSExcelR]
|
||||
14_71dc86ff-f056-40d0-8ffb-9592705c9b76_0016_ExcelVL
|
||||
14_7004b7f0-6407-4f45-8eac-966e5f868bde_00BA_GrooveR
|
||||
14_fdad0dfa-417d-4b4f-93e4-64ea8867b7fd_00BA_GrooveVL
|
||||
14_7b7d1f17-fdcb-4820-9789-9bec6e377821_0013_HomeBusinessR_[HomeBusinessDemoR]
|
||||
14_19316117-30a8-4773-8fd9-7f7231f4e060_011E_HomeBusinessSubR
|
||||
14_09e2d37e-474b-4121-8626-58ad9be5776f_002F_HomeStudentR_[HomeStudentDemoR]
|
||||
14_ef1da464-01c8-43a6-91af-e4e5713744f9_0044_InfoPathR
|
||||
14_85e22450-b741-430c-a172-a37962c938af_0044_InfoPathVL
|
||||
14_14f5946a-debc-4716-babc-7e2c240fec08_000F_MondoR
|
||||
14_533b656a-4425-480b-8e30-1a2358898350_000F_MondoVL
|
||||
14_c1ceda8b-c578-4d5d-a4aa-23626be4e234_003D_ProfessionalR_[OEM-SingleImage]Exception
|
||||
14_3f7aa693-9a7e-44fc-9309-bb3d8e604925_00A1_OneNoteR_[HSOneNoteR]
|
||||
14_6860b31f-6a67-48b8-84b9-e312b3485c4b_00A1_OneNoteVL
|
||||
14_fbf4ac36-31c8-4340-8666-79873129cf40_001A_OutlookR
|
||||
14_a9aeabd8-63b8-4079-a28e-f531807fd6b8_001A_OutlookVL
|
||||
14_acb51361-c0db-4895-9497-1831c41f31a6_0033_PersonalR_[PersonalDemoR,PersonalPrepaidR]
|
||||
14_133c8359-4e93-4241-8118-30bb18737ea0_0018_PowerPointR_[HSPowerPointR]
|
||||
14_38252940-718c-4aa6-81a4-135398e53851_0018_PowerPointVL
|
||||
14_8b559c37-0117-413e-921b-b853aeb6e210_0014_ProfessionalR_[ProfessionalAcadR,ProfessionalDemoR]
|
||||
14_725714d7-d58f-4d12-9fa8-35873c6f7215_003B_ProjectProR_[ProjectProMSDNR]
|
||||
14_4d06f72e-fd50-4bc2-a24b-d448d7f17ef2_011F_ProjectProSubR
|
||||
14_1cf57a59-c532-4e56-9a7d-ffa2fe94b474_003B_ProjectProVL
|
||||
14_688f6589-2bd9-424e-a152-b13f36aa6de1_003A_ProjectStdR
|
||||
14_11b39439-6b93-4642-9570-f2eb81be2238_003A_ProjectStdVL
|
||||
14_71af7e84-93e6-4363-9b69-699e04e74071_0011_ProPlusR_[ProPlusAcadR,ProPlusMSDNR,Sub4R]
|
||||
14_e98ef0c0-71c4-42ce-8305-287d8721e26c_011D_ProPlusSubR
|
||||
14_fdf3ecb9-b56f-43b2-a9b8-1b48b6bae1a7_0011_ProPlusVL_[ProPlusAcadVL]
|
||||
14_98677603-a668-4fa4-9980-3f1f05f78f69_0019_PublisherR
|
||||
14_3d014759-b128-4466-9018-e80f6320d9d0_0019_PublisherVL
|
||||
14_dbe3aee0-5183-4ff7-8142-66050173cb01_008B_SmallBusBasicsR_[SmallBusBasicsMSDNR]
|
||||
14_8090771e-d41a-4482-929e-de87f1f47e46_008B_SmallBusBasicsVL
|
||||
14_b78df69e-0966-40b1-ae85-30a5134dedd0_0017_SPDR
|
||||
14_d3422cfb-8d8b-4ead-99f9-eab0ccd990d7_0012_StandardR
|
||||
14_1f76e346-e0be-49bc-9954-70ec53a4fcfe_0012_StandardVL_[StandardAcadVL]
|
||||
14_2745e581-565a-4670-ae90-6bf7c57ffe43_0066_StarterR
|
||||
14_66cad568-c2dc-459d-93ec-2f3cb967ee34_0057_VisioSIR_Prem[Pro,Std]Exception
|
||||
14_36756cb8-8e69-4d11-9522-68899507cd6a_0057_VisioSIVL_Prem[Pro,Std]Exception
|
||||
14_db3bbc9c-ce52-41d1-a46f-1a1d68059119_001B_WordR_[HSWordR]
|
||||
14_98d4050e-9c98-49bf-9be1-85e12eb3ab13_001B_WordVL
|
||||
:: Office 2013
|
||||
15_ab4d047b-97cf-4126-a69f-34df08e2f254_0015_AccessRetail
|
||||
15_259de5be-492b-44b3-9d78-9645f848f7b0_001C_AccessRuntimeRetail
|
||||
|
@ -2491,6 +2840,7 @@ if "%oVer%"=="%%A" (
|
|||
reg query "%1\Registration\{%%B}" /v ProductCode %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 /i 003D==%%C set SingleImage=1
|
||||
)
|
||||
)
|
||||
)
|
||||
|
@ -2507,7 +2857,7 @@ exit /b
|
|||
:oh_extractdll
|
||||
|
||||
set b=
|
||||
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':%_hook%\:.*';$encoded = ($f[1]) -replace '-', 'A' -replace '_', 'a';$bytes = [Con%b%vert]::FromBas%b%e64String($encoded); $PePath='%1'; $offset='%2'; $m=[io.file]::ReadAllText('!_batp!') -split ':hexedit\:.*';iex ($m[1]);" %nul2% | find /i "Error found" %nul1% && set hasherror=1
|
||||
%psc% "$f=[io.file]::ReadAllText('!_batp!') -split ':%_hook%\:.*';$encoded = ($f[1]) -replace '-', 'A' -replace '_', 'a';$bytes = [Con%b%vert]::FromBas%b%e64String($encoded); $PePath='%1'; $offset='%2'; $m=[io.file]::ReadAllText('!_batp!') -split ':hexedit\:.*';iex ($m[1])" %nul2% | find /i "Error found" %nul1% && set hasherror=1
|
||||
exit /b
|
||||
|
||||
:hexedit:
|
||||
|
@ -2546,7 +2896,7 @@ $Writer.Write($unixTimestamp)
|
|||
$Writer.Flush()
|
||||
|
||||
# Write the current state of the MemoryStream to a temporary file
|
||||
$tempFilePath = [System.IO.Path]::Combine($env:windir, "Temp", [System.IO.Path]::GetRandomFileName())
|
||||
$tempFilePath = "$env:windir\Temp\$([System.IO.Path]::GetRandomFileName())"
|
||||
[System.IO.File]::WriteAllBytes($tempFilePath, $MemoryStream.ToArray())
|
||||
|
||||
# Update hash using the temporary file
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue