Powershell: Citrix liberar licencias
Hoy os traigo un nuevo script, que nos va a permitir liberar nuestras licencias Citrix. Yo lo he probado sobre un entorno Citrix Virtual Apps and Desktops 7 1912 LTSR.
Como ya sabréis, las licencias de Citrix tienen un timeout de 90 días desde que se asignan, eso si tienes las licencias suficientes en tu entorno está muy bien. Pero si tienes usuarios que trabajan en múltiples entornos u otras casuísticas que se pueden dar, puede suponerte un problema. Ya que 90 días son bastantes.
Aunque el comando udadmin.exe nos permite listar:
PS C:\Program Files (x86)\Citrix\Licensing\LS> .\udadmin.exe -list
O eliminar las licencias a mano:
.\udadmin.exe -f XDT_ENT_UD -user elblogdenegu -delete
Si queremos automatizar el proceso sobre todos los usuarios, tenemos que recurrir a scripts. Para ese caso os dejo el siguiente script de powershell, que tendréis que guardar en PS1 y programar con una tarea de Windows en el servidor de licencias:
GITHUB: https://gist.github.com/raulunzue/1fe865097887d2a75234f6fb7aaef5ff
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
###################################### # SCRIPT EL BLOG DE NEGU - RAUL UNZUE ##################################### # Pasamos la ruta a nuestro PATH $env:Path = $env:Path + ';C:\Program Files (x86)\Citrix\Licensing\LS\' # Obtener licencias $FilePath = "C:\Scripts\Citrix_Licence_Used.txt" #$Exe = "C:\Program Files (x86)\Citrix\Licensing\LS" #cd $Exe #./udadmin.exe -list -f “XDT_ENT_UD” | Select-String “XDT_ENT_UD 2021.0524” | out-file $FilePath & 'C:\Program Files (x86)\Citrix\Licensing\LS\udadmin.exe' -list -f "XDT_ENT_UD" | Select-String "XDT_ENT_UD 2021.0524" | out-file $FilePath # Limpiamos el fichero de espacios en blanco (gc $FilePath) | ? {$_.trim() -ne "" } | set-content $FilePath # Limpiamos los datos para tratarlos y obtener licencias de usuarios/maquinas a liberar $Licenses = (Select-String -Pattern "XDT" -Path $FilePath ) | ForEach {$_.line -replace " XDT_ENT_UD 2021.0524 ","" } # Usamos Udadmin para liberar licencias #ForEach ($Lic in $Licenses) {./udadmin.exe -f "XDT_ENT_UD" -user $Lic -delete} ForEach ($Lic in $Licenses) {& 'C:\Program Files (x86)\Citrix\Licensing\LS\udadmin.exe' -f "XDT_ENT_UD" -user $Lic -delete} # Reiniciamos el servicio del servidor de licencias $svc = (Get-Service -DisplayName "Citrix Licensing") Restart-Service -InputObject $svc -verbose |
Espero os parezca interesante…ya que es gratis, comparte ;P
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?