Comandos powershell administración Citrix
Hoy os queremos mostrar varios comandos de powershell que pueden ser muy útiles para gestionar vuestra granja Citrix.
Cargar powershell snapins de Citrix
Cargamos los módulos necesarios para Citrix XenDesktop 7.x
1 |
Add-PSSnapin Citrix* |
Si nuestra infraestructura está en Citrix XenApp 6.5 podemos cargarlos de la siguiente forma:
1 2 3 |
Add-PSSnapIn citrix.xenapp.commands Add-PSSnapIn citrix.common.Commands Add-PSSnapIn citrix.common.groupPolicy |
Una vez cargados los módulos relacionados con Citrix podemos listar los comandos que tenemos cargados:
1 |
Get-Command -Module Citrix* |
Powershell para Citrix Logon
Si queremos saber todos los IDs del sistema:
1 |
query session |
Una vez tenemos los ids podemos usar el script de Control Up y lanzarlo de la siguiente manera:
1 |
Get-LogonDurationAnalysis -Username NombreUsuario -HDXSessionId 8 |
Si queremos saber qué GPOs se aplican o a qué controlador de domino nos logueamos podemos lanzar:
1 |
gpresult /R |
Comandos básicos de powershell para Citrix
A continuación, detallamos algunos comandos útiles para la administración de Citrix XenDesktop 7:
VERSIONES
Saber la versión de XenDesktop, lanzamos desde el Delivery Controler:
1 |
Get-BrokerController | select DNSName, ControllerVersion |
Ver versiones de Productos:
1 |
Get-ConfigProduct |
Saber las ediciones de los productos:
1 2 |
Get-ConfigProductVersion –ProductCode XDT Get-ConfigProductVersion –ProductCode MPS |
Saber las versiones de los productos:
1 2 3 |
Get-ConfigProductEdition –ProductCode XDT Get-ConfigProductEdition –ProductCode MPS |
SITE
Saber el nombre del Site:
1 |
Get-XDSite | select Name |
También se puede usar:
1 |
Get-ConfigSite | select SiteName |
LICENCIAS
Saber el nombre del servidor de Licencias y otros datos sobre él:
1 |
Get-ConfigSite | select LicenseServerName, LicenseServerPort, LicenseServerUri, LicensingBurnIn, LicensingBurnInDate, LicensingModel |
Configurar nuevas opciones de la licencia:
1 |
Set-ConfigSite -LicensingModel Concurrent -ProductCode MPS -ProductEdition ENT |
Configurar puerto y nombre servidor de licencias:
1 |
Set-XDLicensing -LicenseServerAddress CTXLYC01 -LicenseServerPort 27001 |
Comprobar el servidor de licencias en el puerto por defecto (se puede cambiar el puerto). Si está todo OK nos devolverá un “Compatible”:
1 |
Test-BrokerLicenseServer –ComputerName ServidorLicencias 27000 |
DELIVERY CONTROLLER
Listar delivery controller para la zona:
1 |
Get-ConfigZone | select Name, ControllerNames |
APLICACIONES
Saber el nombre de las aplicaciones publicadas y sus argumentos:
1 |
Get-BrokerApplication | select ApplicationName, CommandLineExecutable, CommandLineArguments, UUID |
Obtener datos de la aplicación publicada:
1 |
Get-BrokerApplication –BrowserName “Notepad” |
Borrar aplicación por nombre de todos los Delivery Groups:
1 2 3 4 5 |
$aplicacion = Get-BrokerApplication -BrowserName "Notepad" $grupo = Get-BrokerDesktopGroup -Name "DesktopGroup" Remove-BrokerApplication -InputObject $aplicacion -DesktopGroup $grupo |
PERMISOS
Saber los grupos o usuarios que se han configurado sobre los escritorios y aplicaciones:
1 |
Get-BrokerAccessPolicyRule | select Name, IncludedUsers |
Listar todas las políticas:
1 |
Get-BrokerAccessPolicyRule |
Todas las políticas TRUE para un usuario concreto:
1 |
Get-BrokerAccessPolicyRule -Enabled $true -IncludedUser domain\usuario |
SESIONES
Si queremos ver todas las propiedades disponibles para Get-BrokenSession:
1 |
(Get-BrokerSession | Get-Member | ? { $_.MemberType -eq "Property" }).Name |
Una vez que tenemos los filtros, los utilizamos.
Filtramos por número de uid:
1 |
Get-BrokerSession | ?{$_.uid –eq 4} |
Filtrado por usuario:
1 |
Get-BrokerSession | ? { $_.username -ieq "Domain\usuario" } |
Si queremos saber en qué máquinas está conectado y qué ha lanzado:
1 |
Get-BrokerSession | ?{$_.username -ieq "ctxsflab\runzue"} | select MachineName, LaunchedViaPublishedName, Uid |
1 |
Get-BrokerSession | ?{$_.username -ieq "ctxsflab\runzue"} | select MachineName, LaunchedViaPublishedName, Uid, UserSID, Protocol |
Matar todas las sesiones de un usuario:
1 |
Get-BrokerSession -UserName Dominio\Cuenta | Stop-BrokerSession |
Matar una sesión de una máquina concreta:
1 2 |
$terminar = Get-BrokerDesktop -DNSName maquina.dominio.com Stop-BrokerSession $terminar.SessionUid |
Desconectar todas las sesiones que lleven más de dos días Disconnected:
1 |
Get-BrokerSession -Filter { SessionState -eq 'Disconnected' -and SessionStateChangeTime -lt '-2' } | Stop-BrokerSession |
SERVICIOS
Revisar el estado de los servicios:
1 |
Get-BrokerServiceStatus |
PRELAUNCH
Listar las sesiones prelaunchs dentro de un Delivery Group:
1 |
Get-BrokerSessionPreLaunch -DesktopGroupName "DG01" |
CAMBIAR ICONO
Podemos descargar desde aquí: http://www.iconarchive.com/
Cargamos el fichero ICO, se generará un EncodedIconData con un
1 |
Get-CtxIcon -FileName C:\SOFTWARE\Console.ico | New-BrokerIcon |
Listar UIds ICON para Citrix:
1 |
Get-BrokerIcon | select EncodedIconData*, Uid |
PUBLICACION APLICACIÓN XENAPP DESDE POWERSHELL
Para terminar vamos a publicar una aplicación mediante Powershell:
Primero lanzamos el comando de ayuda sobre el comando que nos permitirá publicarla:
1 |
Get-Help New-BrokerApplication |
Recordar que hemos cargado un fichero ICO y sabemos su UID:
1 |
PS C:\Users> New-BrokerApplication –Name "CMD" -BrowserName "CMD" -ApplicationType "HostedOnDesktop" -PublishedName "CMD" -ClientFolder "Applications" -Enabled $true -CommandLineExecutable "C:\Windows\System32\cmd.exe" -WorkingDirectory "C:\Windows\System32\" -MaxPerUserInstances "1" -DesktopGroup "DGCTXW1201" –IconFromClient "C:\Windows\System32\cmd.exe -IconUid "15" |
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?