PowerShell: Ver el estado del licenciamiento de Windows Server

Windows Server PowerShell Ver el estado de las licencias

Hola a todos, 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 Ncora Team para hablar de un proyecto para tu empresa, pulsa en el botón y te llamamos.

Compártelo en redes sociales

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on email

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.