Ya no tienes que indagar más en internet ya que has llegado al lugar adecuado, contamos con la solución que buscas pero sin liarte.
Solución:
Una solución puramente PowerShell sería:
Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" |
where $_.PartialProductKey | select Description, LicenseStatus
Esto le dará una salida como esta:
Description LicenseStatus
----------- -------------
Windows(R) Operating System, OEM_DM channel 1
si LicenseStatus es 1, significa que el sistema está permanentemente activado.
Lo bueno de esto es que puede verificar fácilmente RemoteMachines, especificando el -ComputerName
Parámetro.
Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" -ComputerName RemoteComp |
where $_.PartialProductKey | select Description, LicenseStatus
Aunque tengo que decir eso slmgr /xpr
es más rápido y también más claro.
En Windows 10 o Windows Server 2016/2019, para mostrar el estado de activación usando el símbolo del sistema (o PowerShell), abra su herramienta de línea de comandos preferida e ingrese el siguiente comando
slmgr /xpr
se muestra un cuadro de diálogo que indica el estado de activación del sistema operativo. Si el sistema operativo aún no está activado, el cuadro de diálogo indicará que está en ‘Modo de notificación’
Si Windows se activó con éxito, el cuadro de diálogo indicará si está ‘Activado permanentemente’ como se muestra a continuación, o si usa una activación de licencia por volumen con límite de tiempo, se mostrará la hora de vencimiento de la activación.
En versiones anteriores de Windows (como Windows 7), los cuadros de diálogo de los mensajes serán similares, pero pueden tener un texto ligeramente diferente.
Este método también podría ser útil para verificar el estado de activación durante el asistente de experiencia lista para usar (OOBE) usando Shift + F10 para iniciar un símbolo del sistema, antes de completar el asistente.
- Para evitar la ventana emergente y
- almacenar la versión de Windows/estado de activación en una variable
- usar
cscript
correrslmgr.vbs
y envuélvalo en un archivo por lotes - analizar la salida con un
for /f
círculo
:: Q:Test2019 4 7SU_1422368.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
Set "WinVerAct="
For /f "tokens=*" %%W in ('
cscript /Nologo "C:WindowsSystem32slmgr.vbs" /xpr
') Do Set "WinVerAct=!WinVerAct! %%W"
if Not defined WinVerAct (
Echo:No response from slmgr.vbs
Exit /B 1
)
Echo Windows Version Activation Status:
Echo:"%WinVerAct:~1%"
Salida de muestra:
> Q:Test2019 4 7SU_1422368.cmd
Windows Version Activation Status:
"Windows(R), Professional edition: Der Computer ist dauerhaft aktiviert."
Un script de PowerShell de una sola línea que envuelve slmgr.vbs:
$WinVerAct = (cscript /Nologo "C:WindowsSystem32slmgr.vbs" /xpr) -join ''
Puedes añadir valor a nuestro contenido cooperando tu veteranía en las críticas.