PowerShell: Ver el estado del licenciamiento de Windows Server

Windows Server PowerShell Ver el estado de las licencias

Queridos amig@s del blog de Encora, bienvenidos a tod@s, soy Òscar Herrera y realizo proyectos de infraestructura y servicios gestionados en nuestros clientes. Hoy os voy a explicar una funcionalidad de Windows Server PowerShell para ver el estado de las licencias cómodamente.

Comentaros que esta función funciona a partir de Windows Server 2008.

Procedimiento Windows Server PowerShell ver el estado de las licencias

¡Vamos a ello!

1. Debemos crear un archivo con extensión *.psm1 y copiar lasiguiente función:

functionGet-ActivationStatus {

[CmdletBinding()]

    param(

        [Parameter(ValueFromPipeline = $true,ValueFromPipelineByPropertyName = $true)]

        [string]$DNSHostName =$Env:COMPUTERNAME

    )

    process {

        try {

            $wpa = Get-WmiObjectSoftwareLicensingProduct -ComputerName $DNSHostName `

            -Filter “ApplicationID =”55c92734-d682-4d71-983e-d6ec3f16059f”” `

            -Property LicenseStatus-ErrorAction Stop

        } catch {

            $status = New-ObjectComponentModel.Win32Exception ($_.Exception.ErrorCode)

            $wpa = $null   

        }

        $out = New-Object psobject -Property @{

            ComputerName = $DNSHostName;

            Status = [string]::Empty;

        }

        if ($wpa) {

            :outer foreach($item in $wpa) {

                switch ($item.LicenseStatus) {

                    0 {$out.Status =”Unlicensed”}

                    1 {$out.Status =”Licensed”; break outer}

                    2 {$out.Status =”Out-Of-Box Grace Period”; break outer}

                    3 {$out.Status =”Out-Of-Tolerance Grace Period”; break outer}

                    4 {$out.Status =”Non-Genuine Grace Period”; break outer}

                    5 {$out.Status = “Notification”;break outer}

                    6 {$out.Status =”Extended Grace”; break outer}

                    default {$out.Status =”Unknown value”}

                }

            }

        } else {$out.Status = $status.Message}

       $out

    }

}

2. Abrimos PowerShell e importamos la función. Import-Module.activacio.psm1 

Windows Server PowerShell licencias

3. Con el siguiente comando:

Get-ADComputer -Filter {OperatingSystem -Like"Windows *Server*"} | Get-ActivationStatus

Nos aparecerán una lista de todos los servidores con su licencia:

Windows Server PowerShell licencias

Como en cualquier comando de PowerShell que ejecutemos, es posible que nos encontremos errores. Es importante tener en cuenta que:

  • Cuando aparece “el servidor RPC no está disponible”, habría que revisar el Firewall, posiblemente el perfil de dominio este activado.
  • Si aparece “Unknown error”, muy probablemente sea un Windows Server 2003 y esta característica no funciona sobre este Sistema Operativo. Como hemos comentado al principio está disponible desde Windows Server 2008 en adelante.
Windows Server PowerShell licencias

¡Espero que os haya servido de ayuda!

Hasta la próxima.

Si estás interesado en contactar con el Encora Team para hablar de un proyecto para tu empresa, pulsa en el botón y te llamamos.

Compártelo en redes sociales

SUSCRÍBETE A LA ENCORA NEWSLETTER

SÉ EL RPIMERO EN ESTAR INFORMADO DE LA ACTUALIDAD TIC CON ENCORA

estamos a tu lado en este momento crítico

Nuestro equipo de expertos te ayuda inmediatamente