From d4b8f942eccdd1570b829b68863acdc9d60b944b Mon Sep 17 00:00:00 2001 From: WindowsAddict Date: Fri, 14 Aug 2020 09:29:32 +0530 Subject: Added HWID support for Windows 10 LTSC 2019 - Now Microsoft support HWID (Digital License) for Windows 10 LTSC 2019, added key for it in the script. - Some minor improvements.--- .../Activators/Check_Activation_Status.cmd | 239 +++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 MAS_1.4/Separate-Files-Version/Activators/Check_Activation_Status.cmd (limited to 'MAS_1.4/Separate-Files-Version/Activators/Check_Activation_Status.cmd') diff --git a/MAS_1.4/Separate-Files-Version/Activators/Check_Activation_Status.cmd b/MAS_1.4/Separate-Files-Version/Activators/Check_Activation_Status.cmd new file mode 100644 index 0000000..7d0bb55 --- /dev/null +++ b/MAS_1.4/Separate-Files-Version/Activators/Check_Activation_Status.cmd @@ -0,0 +1,239 @@ +@setlocal DisableDelayedExpansion +@echo off +@cls + + +:: ================================================== +:: Check-Activation-Status-Alternative.cmd +:: Written by @abbodi1406 (MDL) +:: https://forums.mydigitallife.net/posts/838808 +:: ================================================== + + + + + + +color 07 +title Check Activation Status [wmic] +set wspp=SoftwareLicensingProduct +set wsps=SoftwareLicensingService +set ospp=OfficeSoftwareProtectionProduct +set osps=OfficeSoftwareProtectionService +set winApp=55c92734-d682-4d71-983e-d6ec3f16059f +set o14App=59a52881-a989-479d-af46-f275c6370663 +set o15App=0ff1ce15-a989-479d-af46-f275c6370663 +for %%# in (spp_get,ospp_get,cW1nd0ws,sppw,c0ff1ce15,sppo,osppsvc,ospp14,ospp15) do set "%%#=" +for /f "tokens=6 delims=[]. " %%# in ('ver') do set winbuild=%%# +set "spp_get=Description, DiscoveredKeyManagementServiceMachineName, DiscoveredKeyManagementServiceMachinePort, EvaluationEndDate, GracePeriodRemaining, ID, KeyManagementServiceMachine, KeyManagementServicePort, KeyManagementServiceProductKeyID, LicenseStatus, LicenseStatusReason, Name, PartialProductKey, ProductKeyID, VLActivationInterval, VLRenewalInterval" +set "ospp_get=%spp_get%" +if %winbuild% geq 9200 set "spp_get=%spp_get%, DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled" + +set "SysPath=%Windir%\System32" +if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative") +set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\" +set "line2=************************************************************" +set "line3=____________________________________________________________" + +call :casWpkey %wspp% %winApp% cW1nd0ws sppw +if %winbuild% geq 9200 call :casWpkey %wspp% %o15App% c0ff1ce15 sppo +wmic path %osps% get Version 1>nul 2>nul && ( +call :casWpkey %ospp% %o14App% osppsvc ospp14 +if %winbuild% lss 9200 call :casWpkey %ospp% %o15App% osppsvc ospp15 +) + +echo %line2% +echo *** Windows Status *** +echo %line2% +if not defined cW1nd0ws ( +echo: +echo Error: product key not found. +goto :casWcon +) +set winID=1 +for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%winApp%' and PartialProductKey is not null) get ID /value"') do ( + set "chkID=%%#" + call :casWdet "%wspp%" "%wsps%" "%spp_get%" + call :casWout + echo %line3% + echo: +) + +:casWcon +set winID=0 +set verbose=1 +if not defined c0ff1ce15 ( +if defined osppsvc goto :casWospp +goto :casWend +) +echo %line2% +echo *** Office Status *** +echo %line2% +for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do ( + set "chkID=%%#" + call :casWdet "%wspp%" "%wsps%" "%spp_get%" + call :casWout + echo %line3% + echo: +) +set verbose=0 +if defined osppsvc goto :casWospp +goto :casWend + +:casWospp +if %verbose%==1 ( +echo %line2% +echo *** Office Status *** +echo %line2% +) +if defined ospp15 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do ( + set "chkID=%%#" + call :casWdet "%ospp%" "%osps%" "%ospp_get%" + call :casWout + echo %line3% + echo: +) +if defined ospp14 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o14App%' and PartialProductKey is not null) get ID /value"') do ( + set "chkID=%%#" + call :casWdet "%ospp%" "%osps%" "%ospp_get%" + call :casWout + echo %line3% + echo: +) +goto :casWend + +:casWpkey +wmic path %1 where (ApplicationID='%2' and PartialProductKey is not null) get ID /value 2>nul | findstr /i ID 1>nul && (set %3=1&set %4=1) +exit /b + +:casWdet +for %%# in (%~3) do set "%%#=" +if %~1 equ %ospp% for %%# in (DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled) do set "%%#=" +set "cKmsClient=" +set "cTblClient=" +set "cAvmClient=" +set "ExpireMsg=" +set "_xpr=" +for /f "tokens=* delims=" %%# in ('"wmic path %~1 where ID='%chkID%' get %~3 /value" ^| findstr ^=') do set "%%#" + +set /a _gpr=(GracePeriodRemaining+1440-1)/1440 +echo %Description%| findstr /i VOLUME_KMSCLIENT 1>nul && (set cKmsClient=1&set _mTag=Volume) +echo %Description%| findstr /i TIMEBASED_ 1>nul && (set cTblClient=1&set _mTag=Timebased) +echo %Description%| findstr /i VIRTUAL_MACHINE_ACTIVATION 1>nul && (set cAvmClient=1&set _mTag=Automatic VM) +cmd /c exit /b %LicenseStatusReason% +set "LicenseReason=%=ExitCode%" +set "LicenseMsg=Time remaining: %GracePeriodRemaining% minute(s) (%_gpr% day(s))" +if %_gpr% GEQ 1 for /f "tokens=* delims=" %%# in ('powershell "$([DateTime]::Now.addMinutes(%GracePeriodRemaining%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#" + +if %LicenseStatus% EQU 0 ( +set "License=Unlicensed" +set "LicenseMsg=" +) +if %LicenseStatus% EQU 1 ( +set "License=Licensed" +set "LicenseMsg=" +if %GracePeriodRemaining% EQU 0 ( + if %winID% EQU 1 (set "ExpireMsg=The machine is permanently activated.") else (set "ExpireMsg=The product is permanently activated.") + ) else ( + set "LicenseMsg=%_mTag% activation expiration: %GracePeriodRemaining% minute(s) (%_gpr% day(s))" + if defined _xpr set "ExpireMsg=%_mTag% activation will expire %_xpr%" + ) +) +if %LicenseStatus% EQU 2 ( +set "License=Initial grace period" +if defined _xpr set "ExpireMsg=Initial grace period ends %_xpr%" +) +if %LicenseStatus% EQU 3 ( +set "License=Additional grace period (KMS license expired or hardware out of tolerance)" +if defined _xpr set "ExpireMsg=Additional grace period ends %_xpr%" +) +if %LicenseStatus% EQU 4 ( +set "License=Non-genuine grace period." +if defined _xpr set "ExpireMsg=Non-genuine grace period ends %_xpr%" +) +if %LicenseStatus% EQU 6 ( +set "License=Extended grace period" +if defined _xpr set "ExpireMsg=Extended grace period ends %_xpr%" +) +if %LicenseStatus% EQU 5 ( +set "License=Notification" + if "%LicenseReason%"=="C004F200" (set "LicenseMsg=Notification Reason: 0xC004F200 (non-genuine)." + ) else if "%LicenseReason%"=="C004F009" (set "LicenseMsg=Notification Reason: 0xC004F009 (grace time expired)." + ) else (set "LicenseMsg=Notification Reason: 0x%LicenseReason%" + ) +) +if %LicenseStatus% GTR 6 ( +set "License=Unknown" +set "LicenseMsg=" +) +if not defined cKmsClient exit /b + +if %KeyManagementServicePort%==0 set KeyManagementServicePort=1688 +set "KmsReg=Registered KMS machine name: %KeyManagementServiceMachine%:%KeyManagementServicePort%" +if "%KeyManagementServiceMachine%"=="" set "KmsReg=Registered KMS machine name: KMS name not available" + +if %DiscoveredKeyManagementServiceMachinePort%==0 set DiscoveredKeyManagementServiceMachinePort=1688 +set "KmsDns=KMS machine name from DNS: %DiscoveredKeyManagementServiceMachineName%:%DiscoveredKeyManagementServiceMachinePort%" +if "%DiscoveredKeyManagementServiceMachineName%"=="" set "KmsDns=DNS auto-discovery: KMS name not available" + +for /f "tokens=* delims=" %%# in ('"wmic path %~2 get ClientMachineID, KeyManagementServiceHostCaching /value" ^| findstr ^=') do set "%%#" +if /i %KeyManagementServiceHostCaching%==True (set KeyManagementServiceHostCaching=Enabled) else (set KeyManagementServiceHostCaching=Disabled) + +if %winbuild% lss 9200 exit /b +if %~1 equ %ospp% exit /b + +if "%DiscoveredKeyManagementServiceMachineIpAddress%"=="" set "DiscoveredKeyManagementServiceMachineIpAddress=not available" + +if "%KeyManagementServiceLookupDomain%"=="" set "KeyManagementServiceLookupDomain=" + +if %VLActivationTypeEnabled% EQU 3 ( +set VLActivationType=Token +) else if %VLActivationTypeEnabled% EQU 2 ( +set VLActivationType=KMS +) else if %VLActivationTypeEnabled% EQU 1 ( +set VLActivationType=AD +) else ( +set VLActivationType=All +) +exit /b + +:casWout +echo: +echo Name: %Name% +echo Description: %Description% +echo Activation ID: %ID% +echo Extended PID: %ProductKeyID% +if defined ProductKeyChannel echo Product Key Channel: %ProductKeyChannel% +echo Partial Product Key: %PartialProductKey% +echo License Status: %License% +if defined LicenseMsg echo %LicenseMsg% +if not %LicenseStatus%==0 if not %EvaluationEndDate:~0,8%==16010101 echo Evaluation End Date: %EvaluationEndDate:~0,4%-%EvaluationEndDate:~4,2%-%EvaluationEndDate:~6,2% %EvaluationEndDate:~8,2%:%EvaluationEndDate:~10,2% UTC +if not defined cKmsClient ( +if defined ExpireMsg echo:&echo: %ExpireMsg% +exit /b +) +if defined VLActivationTypeEnabled echo Configured Activation Type: %VLActivationType% +echo: +if not %LicenseStatus%==1 ( +echo Please activate the product in order to update KMS client information values. +exit /b +) +echo Most recent activation information: +echo Key Management Service client information +echo: Client Machine ID (CMID): %ClientMachineID% +echo: %KmsDns% +echo: %KmsReg% +if defined DiscoveredKeyManagementServiceMachineIpAddress echo: KMS machine IP address: %DiscoveredKeyManagementServiceMachineIpAddress% +echo: KMS machine extended PID: %KeyManagementServiceProductKeyID% +echo: Activation interval: %VLActivationInterval% minutes +echo: Renewal interval: %VLRenewalInterval% minutes +echo: KMS host caching: %KeyManagementServiceHostCaching% +if defined KeyManagementServiceLookupDomain echo: KMS SRV record lookup domain: %KeyManagementServiceLookupDomain% +if defined ExpireMsg echo:&echo: %ExpireMsg% +exit /b + +:casWend +echo: +echo Press any key to exit. +pause >nul +exit /b \ No newline at end of file -- cgit v1.2.3