diff options
Diffstat (limited to 'MAS/Separate-Files-Version/Activation_Troubleshoot.cmd')
| -rw-r--r-- | MAS/Separate-Files-Version/Activation_Troubleshoot.cmd | 886 |
1 files changed, 0 insertions, 886 deletions
diff --git a/MAS/Separate-Files-Version/Activation_Troubleshoot.cmd b/MAS/Separate-Files-Version/Activation_Troubleshoot.cmd deleted file mode 100644 index 0b6a574..0000000 --- a/MAS/Separate-Files-Version/Activation_Troubleshoot.cmd +++ /dev/null @@ -1,886 +0,0 @@ -@setlocal DisableDelayedExpansion -@echo off - - - -::============================================================================ -:: -:: This script is a part of 'Microsoft Activation Scripts' (MAS) project. -:: -:: Homepage: massgrave.dev -:: Email: [email protected] -:: -::============================================================================ - - - - -::======================================================================================================================================== - -:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows -:: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows - -set "_cmdf=%~f0" -for %%# in (%*) do ( -if /i "%%#"=="r1" set r1=1 -if /i "%%#"=="r2" set r2=1 -) - -if exist %SystemRoot%\Sysnative\cmd.exe if not defined r1 ( -setlocal EnableDelayedExpansion -start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" %* r1" -exit /b -) - -:: Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows - -if exist %SystemRoot%\SysArm32\cmd.exe if %PROCESSOR_ARCHITECTURE%==AMD64 if not defined r2 ( -setlocal EnableDelayedExpansion -start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %* r2" -exit /b -) - -:: Set Path variable, it helps if it is misconfigured in the system - -set "PATH=%SystemRoot%\System32;%SystemRoot%\System32\wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\" -if exist "%SystemRoot%\Sysnative\reg.exe" ( -set "PATH=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%PATH%" -) - -:: Check LF line ending - -pushd "%~dp0" ->nul findstr /rxc:".*" "%~nx0" -if not %errorlevel%==0 ( -echo: -echo Error: This is not a correct file. It has LF line ending issue. -echo: -echo Press any key to exit... -pause >nul -popd -exit /b -) -popd - -::======================================================================================================================================== - -cls -color 07 -title Activation Troubleshoot - -set _elev= -if /i "%~1"=="-el" set _elev=1 - -set winbuild=1 -set "nul=>nul 2>&1" -set psc=powershell.exe -for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G - -set _NCS=1 -if %winbuild% LSS 10586 set _NCS=0 -if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0) - -call :_colorprep - -set cbs_log=%SystemRoot%\logs\cbs\cbs.log -set "nceline=echo: &echo ==== ERROR ==== &echo:" -set "eline=echo: &call :_color %Red% "==== ERROR ====" &echo:" -set "line=_________________________________________________________________________________________________" - -::======================================================================================================================================== - -if %winbuild% LSS 7600 ( -%nceline% -echo Unsupported OS version detected. -echo Project is supported only for Windows 7/8/8.1/10/11 and their Server equivalent. -goto at_done -) - -for %%# in (powershell.exe) do @if "%%~$PATH:#"=="" ( -%nceline% -echo Unable to find powershell.exe in the system. -goto at_done -) - -::======================================================================================================================================== - -:: Fix for the special characters limitation in path name - -set "_work=%~dp0" -if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" - -set "_batf=%~f0" -set "_batp=%_batf:'=''%" - -set _PSarg="""%~f0""" -el %_args% - -set "_ttemp=%temp%" - -setlocal EnableDelayedExpansion - -::======================================================================================================================================== - -echo "!_batf!" | find /i "!_ttemp!" 1>nul && ( -if /i not "!_work!"=="!_ttemp!" ( -%nceline% -echo Script is launched from the temp folder, -echo Most likely you are running the script directly from the archive file. -echo: -echo Extract the archive file and launch the script from the extracted folder. -goto at_done -) -) - -::======================================================================================================================================== - -:: Elevate script as admin and pass arguments and preventing loop - -%nul% reg query HKU\S-1-5-19 || ( -if not defined _elev %nul% %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b -%nceline% -echo This script require administrator privileges. -echo To do so, right click on this script and select 'Run as administrator'. -goto at_done -) - -::======================================================================================================================================== - -setlocal DisableDelayedExpansion - -:: Check desktop location - -set desktop= -for /f "skip=2 tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do call set "desktop=%%b" -if not defined desktop for /f "delims=" %%a in ('%psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do call set "desktop=%%a" - -if not defined desktop ( -%eline% -echo Desktop location was not detected, aborting... -goto at_done -) - -setlocal EnableDelayedExpansion - -::======================================================================================================================================== - -:at_menu - -cls -color 07 -title Activation Troubleshoot -mode con cols=77 lines=30 - -echo: -echo: -echo: -echo: -echo: _______________________________________________________________ -echo: -echo: [1] ReadMe -echo: ___________________________________________________ -echo: -echo: [2] Dism RestoreHealth -echo: [3] SFC Scannow -echo: -echo: [4] Rebuild Licensing Tokens -echo: [5] Clear Office vNext License -echo: ___________________________________________________ -echo: -echo: [6] Solution: Office is not genuine banner -echo: [0] Exit -echo: _______________________________________________________________ -echo: -call :_color2 %_White% " " %_Green% "Enter a menu option in the Keyboard :" -choice /C:1234560 /N -set _erl=%errorlevel% - -if %_erl%==7 exit /b -if %_erl%==6 start https://massgrave.dev/office-license-is-not-genuine &goto at_menu -if %_erl%==5 goto:clearvnext -if %_erl%==4 goto:retokens -if %_erl%==3 goto:sfcscan -if %_erl%==2 goto:dism_rest -if %_erl%==1 start https://massgrave.dev/troubleshoot.html &goto at_menu -goto :at_menu - -::======================================================================================================================================== - -:dism_rest - -cls -mode 98, 30 -title Dism /Online /Cleanup-Image /RestoreHealth - -if %winbuild% LSS 9200 ( -%eline% -echo Unsupported OS version Detected. -echo This command is supported only for Windows 8/8.1/10/11 and their Server equivalent. -goto :at_back -) - -set _int= -for %%a in (dns.msftncsi.com) do ( -if not defined _int (for /f "delims=[] tokens=2" %%# in ('ping -n 1 %%a') do if not [%%#]==[] set _int=1)) - -echo: -if defined _int ( -echo Checking Internet Connection [Connected] -) else ( -call :_color2 %_White% " " %Red% "Checking Internet Connection [Not connected]" -) - -echo %line% -echo: -echo Dism uses Windows Update to provide the files required to fix corruption. -echo This will take 5-15 minutes or more.. -echo %line% -echo: -echo Notes: -echo: -call :_color2 %_White% " - " %Gray% "Make sure the Internet is connected." -call :_color2 %_White% " - " %Gray% "Make sure the Windows update is properly working." -echo: -echo %line% -echo: -choice /C:29 /N /M "> [9] Continue [2] Go back : " -if %errorlevel%==1 goto at_menu - -cls -mode 110, 30 -echo: - -call :_stopservice TrustedInstaller -del /s /f /q "%SystemRoot%\logs\cbs\*.*" - -set _time= -for /f %%a in ('%psc% "Get-Date -format HH_mm_ss"') do set _time=%%a -echo: -echo Applying the command, -echo dism /online /cleanup-image /restorehealth /Logpath:"%SystemRoot%\Temp\RHealth_DISM_%_time%.txt" /loglevel:4 -echo: -dism /online /cleanup-image /restorehealth /Logpath:"%SystemRoot%\Temp\RHealth_DISM_%_time%.txt" /loglevel:4 - -if not exist "!desktop!\" ( -echo: -call :_color %Red% "Desktop location is not detected. Failed to copy logs on the dekstop." -goto :at_back -) - -if not exist "!desktop!\AT_Logs\" md "!desktop!\AT_Logs\" %nul% -copy /y /b "%SystemRoot%\Temp\RHealth_DISM_%_time%.txt" "!desktop!\AT_Logs\RHealth_DISM_%_time%.txt" %nul% -copy /y /b "%cbs_log%" "!desktop!\AT_Logs\RHealth_CBS_%_time%.txt" %nul% -del /f /q "%SystemRoot%\Temp\RHealth_DISM_%_time%.txt" %nul% - -echo: -call :_color %Gray% "CBS and DISM logs are copied to the AT_Logs folder on the dekstop." -goto :at_back - -::======================================================================================================================================== - -:sfcscan - -cls -mode 98, 30 -title sfc /scannow - -echo: -echo %line% -echo: -echo System File Checker will repair missing or corrupted system files. -echo This will take 10-15 minutes or more.. -echo: -echo If SFC could not fix something, then run the command again to see if it may be able -echo to the next time. Sometimes it may take running the sfc /scannow command 3 times -echo restarting the PC after each time to completely fix everything that it's able to. -echo: -echo %line% -echo: -choice /C:29 /N /M "> [9] Continue [2] Go back : " -if %errorlevel%==1 goto at_menu - -cls -echo: - -call :_stopservice TrustedInstaller -del /s /f /q "%SystemRoot%\logs\cbs\*.*" - -set _time= -for /f %%a in ('%psc% "Get-Date -format HH_mm_ss"') do set _time=%%a -echo: -echo Applying the command, -echo sfc /scannow -echo: -sfc /scannow - -if not exist "!desktop!\" ( -echo: -call :_color %Red% "Desktop location is not detected. Failed to copy logs on the dekstop." -goto :at_back -) - -if not exist "!desktop!\AT_Logs\" md "!desktop!\AT_Logs\" %nul% - -copy /y /b "%cbs_log%" "!desktop!\AT_Logs\SFC_CBS_%_time%.txt" %nul% -findstr /i /c:"[SR]" %cbs_log% | findstr /i /v /c:verify >"!desktop!\AT_Logs\SFC_Main_%_time%.txt" - -echo: -call :_color %Gray% "CBS and main extracted logs are copied to the AT_Logs folder on the dekstop." -goto :at_back - -::======================================================================================================================================== - -:clearvnext - -cls -mode 98, 30 -title Clear Office vNext License - -echo: -echo %line% -echo: -echo This options will clear Office vNext ^(subscription^) license -echo: -echo You need to use this option when, -echo - KMS option is not activating office due to existing subscription license -echo - KMS option activated Office but Office activation page is not showing activated -echo: -echo %line% -echo: -choice /C:29 /N /M "> [9] Continue [2] Go back : " -if %errorlevel%==1 goto at_menu - -cls -mode con cols=115 lines=32 -%nul% %psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" - - - -echo: -echo %line% -echo: -call :_color %Magenta% "Clearing Office vNext License" -echo: - -setlocal DisableDelayedExpansion -set "_locl=%LocalAppData%\Microsoft\Office\Licenses" -setlocal EnableDelayedExpansion -call :cleanfolder -set "_locl=%ProgramData%\Microsoft\Office\Licenses" -call :cleanfolder - -echo: -for %%# in ( -HKCU\Software\Microsoft\Office\16.0\Common\Licensing -HKCU\Software\Microsoft\Office\16.0\Common\Identity -) do ( -reg query %%# %nul% && ( -reg delete %%# /f %nul% && ( -echo Deleted Registry - %%# -) || ( -echo Failed to Delete - %%# -) -) || ( -echo Already Clean - %%# -) -) - -goto :at_back - -:cleanfolder - -2>nul dir /b /a "!_locl!\*" | %nul% findstr "^" && ( -pushd "!_locl!\" && ( -del /S /F /Q "!_locl!\*" -for /F "delims=" %%i in ('dir /b') do ( -RD /S /Q "%%i" %nul% -if not exist "!_locl!\%%i\" ( -echo Deleted Folder - !_locl!\%%i -) else ( -echo Failed To Delete - !_locl!\%%i -) -) -popd -) -) || ( -echo Already Clean - !_locl!\ -) -exit /b - -::======================================================================================================================================== - -:retokens - -cls -mode con cols=115 lines=32 -%nul% %psc% "&{$W=$Host.UI.RawUI.WindowSize;$B=$Host.UI.RawUI.BufferSize;$W.Height=31;$B.Height=200;$Host.UI.RawUI.WindowSize=$W;$Host.UI.RawUI.BufferSize=$B;}" -title Rebuild Licensing Tokens ^(SPP ^+ OSPP) - -echo: -echo %line% -echo: -echo Notes: -echo: -echo - It helps in troubleshooting activation issues. -echo: -call :_color2 %_White% " - " %Magenta% "This option will," -call :_color2 %_White% " " %Magenta% "- Deactivate Windows and Office, you will need to reactivate" -call :_color2 %_White% " " %Magenta% "- Uninstall Office licenses and keys" -call :_color2 %_White% " " %Magenta% "- Clear SPP-OSPP data.dat, tokens.dat, cache.dat" -call :_color2 %_White% " " %Magenta% "- Trigger the repair option for Office" -echo: -call :_color2 %_White% " - " %Red% "Apply it only when it is necessary." -echo: -echo %line% -echo: -choice /C:29 /N /M "> [9] Continue [2] Go back : " -if %errorlevel%==1 goto at_menu - - -cls -echo: -echo %line% -echo: -call :_color %Magenta% "Rebuilding SPP Licensing Tokens" -echo: - -call :scandat check - -if not defined token ( -call :_color %Red% "tokens.dat file not found." -) else ( -echo tokens.dat file: [%token%] -) - -echo: -echo Stopping sppsvc service... -call :_stopservice sppsvc - -echo: -call :scandat delete -call :scandat check - -if defined token ( -echo: -call :_color %Red% "Failed to delete .dat files." -echo: -) - -echo: -echo Reinstalling System Licenses [slmgr /rilc]... -cscript //nologo %windir%\system32\slmgr.vbs /rilc %nul% -if %errorlevel% NEQ 0 cscript //nologo %windir%\system32\slmgr.vbs /rilc %nul% -if %errorlevel% EQU 0 ( -echo [Successful] -) else ( -call :_color %Red% "[Failed]" -) - -call :scandat check - -echo: -if not defined token ( -call :_color %Red% "Failed to rebuilt tokens.dat file." -) else ( -call :_color %Green% "tokens.dat file was rebuilt successfully." -) - -::======================================================================================================================================== - -:: Rebuild OSPP Tokens - -echo: -echo %line% -echo: - -sc qc osppsvc %nul% || ( -echo: -call :_color %Magenta% "OSPP based Office is not installed" -call :_color %Magenta% "Skipping rebuilding OSPP tokens" -goto :cleanclipsvc -) - -call :_color %Magenta% "Rebuilding OSPP Licensing Tokens" -echo: - -call :scandatospp check - -if not defined token ( -call :_color %Red% "tokens.dat file not found." -) else ( -echo tokens.dat file: [%token%] -) - -echo: -echo Stopping osppsvc service... -call :_stopservice osppsvc - -echo: -call :scandatospp delete -call :scandatospp check - -if defined token ( -echo: -call :_color %Red% "Failed to delete .dat files." -echo: -) - -echo: -echo Starting osppsvc service to generate tokens.dat -call :_startservice osppsvc -call :scandatospp check -if not defined token ( -call :_stopservice osppsvc -call :_startservice osppsvc -timeout /t 3 %nul% -) - -call :scandatospp check - -echo: -if not defined token ( -call :_color %Red% "Failed to rebuilt tokens.dat file." -) else ( -call :_color %Green% "tokens.dat file was rebuilt successfully." -) - -::======================================================================================================================================== - -:cleanclipsvc - -:: This section is removed - -::======================================================================================================================================== - -:repairoffice - -echo: -echo %line% -echo: -call :_color %Magenta% "Repairing Office Licenses" -echo: - -for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE') do set arch=%%b - -if /i "%arch%"=="ARM64" ( -echo: -echo ARM64 Windows Found. -echo You need to use repair option in Windows settings for Office. -echo: -start ms-settings:appsfeatures -goto :repairend -) - -if /i "%arch%"=="x86" ( -set arch=X86 -) else ( -set arch=X64 -) - -for %%# in (68 86) do ( -for %%A in (msi14 msi15 msi16 c2r14 c2r15 c2r16) do (set %%A_%%#=&set %%Arepair%%#=) -) - -set _68=HKLM\SOFTWARE\Microsoft\Office -set _86=HKLM\SOFTWARE\Wow6432Node\Microsoft\Office - -%nul% reg query %_68%\14.0\Common\InstallRoot /v Path && (set "msi14_68=Office 14.0 MSI x86/x64" & set "msi14repair68=%systemdrive%\Program Files\Common Files\microsoft shared\OFFICE14\Office Setup Controller\Setup.exe") -%nul% reg query %_86%\14.0\Common\InstallRoot /v Path && (set "msi14_86=Office 14.0 MSI x86" & set "msi14repair86=%systemdrive%\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\Office Setup Controller\Setup.exe") -%nul% reg query %_68%\15.0\Common\InstallRoot /v Path && (set "msi15_68=Office 15.0 MSI x86/x64" & set "msi15repair68=%systemdrive%\Program Files\Common Files\microsoft shared\OFFICE15\Office Setup Controller\Setup.exe") -%nul% reg query %_86%\15.0\Common\InstallRoot /v Path && (set "msi15_86=Office 15.0 MSI x86" & set "msi15repair86=%systemdrive%\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe") -%nul% reg query %_68%\16.0\Common\InstallRoot /v Path && (set "msi16_68=Office 16.0 MSI x86/x64" & set "msi16repair68=%systemdrive%\Program Files\Common Files\Microsoft Shared\OFFICE16\Office Setup Controller\Setup.exe") -%nul% reg query %_86%\16.0\Common\InstallRoot /v Path && (set "msi16_86=Office 16.0 MSI x86" & set "msi16repair86=%systemdrive%\Program Files (x86)\Common Files\Microsoft Shared\OFFICE16\Office Setup Controller\Setup.exe") -%nul% reg query %_68%\14.0\CVH /f Click2run /k && (set "c2r14_68=Office 14.0 C2R x86/x64" & set "c2r14repair68=") -%nul% reg query %_86%\14.0\CVH /f Click2run /k && (set "c2r14_86=Office 14.0 C2R x86" & set "c2r14repair86=") -%nul% reg query %_68%\15.0\ClickToRun /v InstallPath && (set "c2r15_68=Office 15.0 C2R x86/x64" & set "c2r15repair68=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\integratedoffice.exe") -%nul% reg query %_86%\15.0\ClickToRun /v InstallPath && (set "c2r15_86=Office 15.0 C2R x86" & set "c2r15repair86=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\integratedoffice.exe") -%nul% reg query %_68%\ClickToRun /v InstallPath && (set "c2r16_68=Office 16.0 C2R x86/x64" & set "c2r16repair68=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\OfficeClickToRun.exe") -%nul% reg query %_86%\ClickToRun /v InstallPath && (set "c2r16_86=Office 16.0 C2R x86" & set "c2r16repair86=%systemdrive%\Program Files\Microsoft Office 15\Client%arch%\OfficeClickToRun.exe") - -set uwp16= -if %winbuild% GEQ 10240 reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\msoxmled.exe" %nul% && ( -dir /b "%ProgramFiles%\WindowsApps\Microsoft.Office.Desktop*" %nul% && set uwp16=Office 16.0 UWP -dir /b "%ProgramW6432%\WindowsApps\Microsoft.Office.Desktop*" %nul% && set uwp16=Office 16.0 UWP -dir /b "%ProgramFiles(x86)%\WindowsApps\Microsoft.Office.Desktop*" %nul% && set uwp16=Office 16.0 UWP -) - -set /a counter=0 -echo Checking installed Office versions... -echo: - -for %%# in ( -"%msi14_68%" -"%msi14_86%" -"%msi15_68%" -"%msi15_86%" -"%msi16_68%" -"%msi16_86%" -"%c2r14_68%" -"%c2r14_86%" -"%c2r15_68%" -"%c2r15_86%" -"%c2r16_68%" -"%c2r16_86%" -"%uwp16%" -) do ( -if not "%%#"=="""" ( -set insoff=%%# -set insoff=!insoff:"=! -echo [!insoff!] -set /a counter+=1 -) -) - -if %counter% GTR 1 ( -%eline% -echo Multiple office versions found. -echo It's recommended to install only one version of office. -echo ________________________________________________________________ -echo: -) - -if %counter% EQU 0 ( -echo: -echo Installed Office is not found. -goto :repairend -echo: -) else ( -echo: -call :_color %_Yellow% "A Window will popup, in that Window you need to select Repair Option..." -call :_color %_Yellow% "Press any key to continue..." -echo: -pause >nul -) - -if defined uwp16 ( -echo: -echo Note: Skipping repair for Office 16.0 UWP. -echo You need to use reset option in Windows settings for it. -echo ________________________________________________________________ -echo: -start ms-settings:appsfeatures -) - -set c2r14= -if defined c2r14_68 set c2r14=1 -if defined c2r14_86 set c2r14=1 - -if defined c2r14 ( -echo: -echo Note: Skipping repair for Office 14.0 C2R -echo You need to use Repair option in Windows settings for it. -echo ________________________________________________________________ -echo: -start appwiz.cpl -) - -if defined msi14_68 if exist "%msi14repair68%" echo Running - "%msi14repair68%" & "%msi14repair68%" -if defined msi14_86 if exist "%msi14repair86%" echo Running - "%msi14repair86%" & "%msi14repair86%" -if defined msi15_68 if exist "%msi15repair68%" echo Running - "%msi15repair68%" & "%msi15repair68%" -if defined msi15_86 if exist "%msi15repair86%" echo Running - "%msi15repair86%" & "%msi15repair86%" -if defined msi16_68 if exist "%msi16repair68%" echo Running - "%msi16repair68%" & "%msi16repair68%" -if defined msi16_86 if exist "%msi16repair86%" echo Running - "%msi16repair86%" & "%msi16repair86%" -if defined c2r15_68 if exist "%c2r15repair68%" echo Running - "%c2r15repair68%" REPAIRUI RERUNMODE & "%c2r15repair68%" REPAIRUI RERUNMODE -if defined c2r15_86 if exist "%c2r15repair86%" echo Running - "%c2r15repair86%" REPAIRUI RERUNMODE & "%c2r15repair86%" REPAIRUI RERUNMODE -if defined c2r16_68 if exist "%c2r16repair68%" echo Running - "%c2r16repair68%" scenario=Repair & "%c2r16repair68%" scenario=Repair -if defined c2r16_86 if exist "%c2r16repair86%" echo Running - "%c2r16repair86%" scenario=Repair & "%c2r16repair86%" scenario=Repair - -:repairend - -echo: -echo %line% -echo: -echo: -call :_color %Green% "Finished" - -::======================================================================================================================================== - -:at_back - -echo: -echo %line% -echo: -call :_color %_Yellow% "Press any key to go back..." -pause >nul -goto :at_menu - -::======================================================================================================================================== - -:at_done - -echo: -echo Press any key to exit... -pause >nul -exit /b - -::======================================================================================================================================== - -:_stopservice - -for %%# in (%1) do ( -sc query %%# | find /i "STOPPED" %nul% || net stop %%# /y %nul% -sc query %%# | find /i "STOPPED" %nul% || sc stop %%# %nul% -) -exit /b - -:_startservice - -for %%# in (%1) do ( -sc query %%# | find /i "RUNNING" %nul% || net start %%# /y %nul% -sc query %%# | find /i "RUNNING" %nul% || sc start %%# %nul% -) -exit /b - -::======================================================================================================================================== - -:scandat - -set token= -for %%# in ( -%Systemdrive%\Windows\System32\spp\store_test\2.0\ -%Systemdrive%\Windows\System32\spp\store\ -%Systemdrive%\Windows\System32\spp\store\2.0\ -%Systemdrive%\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\ -) do ( - -if %1==check ( -if exist %%#tokens.dat set token=%%#tokens.dat -) - -if %1==delete ( -if exist %%# ( -%nul% dir /a-d /s "%%#*.dat" && ( -attrib -r -s -h "%%#*.dat" /S -del /S /F /Q "%%#*.dat" -) -) -) -) -exit /b - -:scandatospp - -set token= -for %%# in ( -%ProgramData%\Microsoft\OfficeSoftwareProtectionPlatform\ -) do ( - -if %1==check ( -if exist %%#tokens.dat set token=%%#tokens.dat -) - -if %1==delete ( -if exist %%# ( -%nul% dir /a-d /s "%%#*.dat" && ( -attrib -r -s -h "%%#*.dat" /S -del /S /F /Q "%%#*.dat" -) -) -) -) -exit /b - -::========================================================================================================================================\ - -:_color - -if %_NCS% EQU 1 ( -echo %esc%[%~1%~2%esc%[0m -) else ( -call :batcol %~1 "%~2" -) -exit /b - -:_color2 - -if %_NCS% EQU 1 ( -echo %esc%[%~1%~2%esc%[%~3%~4%esc%[0m -) else ( -call :batcol %~1 "%~2" %~3 "%~4" -) -exit /b - -::======================================= - -:: Colored text with pure batch method -:: Thanks to @dbenham and @jeb -:: stackoverflow.com/a/10407642 - -:batcol - -pushd %_coltemp% -if not exist "'" (<nul >"'" set /p "=.") -setlocal -set "s=%~2" -set "t=%~4" -call :_batcol %1 s %3 t -del /f /q "'" -del /f /q "`.txt" -popd -exit /b - -:_batcol - -setlocal EnableDelayedExpansion -set "s=!%~2!" -set "t=!%~4!" -for /f delims^=^ eol^= %%i in ("!s!") do ( - if "!" equ "" setlocal DisableDelayedExpansion - >`.txt (echo %%i\..\') - findstr /a:%~1 /f:`.txt "." - <nul set /p "=%_BS%%_BS%%_BS%%_BS%%_BS%%_BS%%_BS%" -) -if "%~4"=="" echo(&exit /b -setlocal EnableDelayedExpansion -for /f delims^=^ eol^= %%i in ("!t!") do ( - if "!" equ "" setlocal DisableDelayedExpansion - >`.txt (echo %%i\..\') - findstr /a:%~3 /f:`.txt "." - <nul set /p "=%_BS%%_BS%%_BS%%_BS%%_BS%%_BS%%_BS%" -) -echo( -exit /b - -::======================================= - -:_colorprep - -if %_NCS% EQU 1 ( -for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a" - -set "Red="41;97m"" -set "Gray="100;97m"" -set "Black="30m"" -set "Green="42;97m"" -set "Blue="44;97m"" -set "Yellow="43;97m"" -set "Magenta="45;97m"" - -set "_Red="40;91m"" -set "_Green="40;92m"" -set "_Blue="40;94m"" -set "_White="40;37m"" -set "_Yellow="40;93m"" - -exit /b -) - -for /f %%A in ('"prompt $H&for %%B in (1) do rem"') do set "_BS=%%A %%A" -set "_coltemp=%SystemRoot%\Temp" - -set "Red="CF"" -set "Gray="8F"" -set "Black="00"" -set "Green="2F"" -set "Blue="1F"" -set "Yellow="6F"" -set "Magenta="5F"" - -set "_Red="0C"" -set "_Green="0A"" -set "_Blue="09"" -set "_White="07"" -set "_Yellow="0E"" - -exit /b - -::========================================================================================================================================
\ No newline at end of file |
