Directivas
El documentar las directivas ha sido la parte más difícil de conseguir, por dos razones, la primera, por que no está integrado en el SDK de Citrix y hay que utilizar funciones de terceros, y la segunda es que si queremos formatear correctamente la salida y es necesario procesar cada una de las decenas de opciones disponibles en las directivas tanto de equipo como de usuario.
Vamos a comenzar a describir el proceso para obtener toda la información de las directivas. El primer paso es importar el modulo Citrix.GroupPolicy.Commands
1 |
Import-Module Citrix.GroupPolicy.Commands |
Lo siguiente es utilizar el comando New-PSDrive para obtener acceso a las directivas como una unidad.
Tendremos que indicar que va a ser de tipo Citrix con el parámetro –PSProvider, el servidor de la granja con el parámetro –FarmGPO y también es recomendable utilizar el parámetro –Scope Global. Con el parámetro –Name indicamos el nombre que le vamos a dar y que utilizaremos posteriormente.
1 |
$PSCitrixGPO=New-PSDrive -Name CitrixGPO -PSProvider CitrixGroupPolicy -Root \ -FarmGPO $Servidor_DC -Scope Global |
Una vez creado el dispositivo obtenemos las directivas indicando con el parámetro –DriveName el nombre del dispositivo creado anteriormente
1 |
Get-CtxGroupPolicy -DriveName CitrixGPO |
De una directiva nos interesan 3 cosas:
- Información general, como puede ser el nombre, la descripción, el tipo, la prioridad
- La configuración, que propiedades se aplican y cual es su configuración.
- Los filtros para indicar a que elementos se aplican
El primer punto lo podemos obtener directamente de la directiva, con los atributos Policyname, Description, Type, Priority.
La configuración la obtenemos con el comando Get-CtxGroupPolicyConfiguration. Con la configuración, tenemos como atributos cada una de los propiedades. Con 3 valores:
- State: que a su vez puede ser:
- Enabled
- Disabled
- NotConfigured
- Value: Si la directiva tiene un valor aparece aquí.
- Path: Ubicación de la directiva.
Los filtros los obtenemos con el comando Get-CtxGroupPolicyFilter. De los filtros obtenemos el nombre, el tipo, el modo, el valor y si está habiltado o no, con los atributos Filtername, Type…
El script nos quedaría algo así:
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
$PSCitrixGPO=New-PSDrive -Name CitrixGPO -PSProvider CitrixGroupPolicy -Root \ -FarmGPO $Servidor_DC -Scope Global $Directivas = Get-CtxGroupPolicy -DriveName CitrixGPO ForEach ($Policy in $Directivas) { $Directiva.Nombre = $Policy.PolicyName $Directiva.Descripcion = $Policy.Description $Directiva.Tipo = $Policy.Type $Directiva.Habilitada = $Policy.Enabled $Directiva.Prioridad = $Policy.Priority $Filtros = Get-CtxGroupPolicyFilter -PolicyName $Policy.PolicyName -DriveName CitrixGPO $Configuracion = Get-CtxGroupPolicyConfiguration -PolicyName $Policy.PolicyName -DriveName CitrixGPO #Procesamos los filtros if ($Filtros) { Foreach ($Filtro in $Filtros) { $Directiva.Filtro += "\tNombre: " + $Filtro.FilterName + "\n" $Directiva.Filtro += "\tTipo: " + $Filtro.Type + "\n" $Directiva.Filtro += "\tHabilitado: " + $Filtro.Enabled + "\n" $Directiva.Filtro += "\tModo: " + $Filtro.Mode + "\n" $Directiva.Filtro += "\tValor: " + $Filtro.FilterValue + "\n\n" } } Else { $Directiva.Filtro = "No hay Filtros\n" } #Procesamos la configuracion If ($Configuracion.Type -eq "Computer") { If (($Configuracion.Farmname.State -ne "NotConfigured") -or ($Configuracion.WorkLoadName.State -ne "NotConfigured")) { $Directiva.Configuracion += "Administración de energía y capacidad\n" If ($Configuracion.Farmname.State -ne "NotConfigured") { $Directiva.Configuracion += "\tNombre de la comunidad: " + $Configuracion.Farmname.Value + "\n" } If ($Configuracion.WorkLoadName.State -ne "NotConfigured") { $Directiva.Configuracion += "\tNombre de la carga de trabajo: " + $Configuracion.WorkLoadName.Value + "\n" } } ... } |
Como hay multitud de opciones aquí solo se muestran una pequeña parte. En la entrada con el ejemplo completo se pueden ver todas las opciones.
Hay algunas configuraciones que tienen un tratamiento especial por el formato de salida (por ejemplo los test de supervisión de estado muestran su valor en formato XML
Documentar granja Citrix XenApp 6.5 con Powershell
- Introducción
- Información de la granja
- Administradores
- Aplicaciones
- Directivas de Equilibrio de Carga
- Directivas
- Grupos de Servidores
- Patrones de Carga
- Servidores
- Zonas
- Ejemplo completo y y descarga
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?
Un comentario
Pingback: Documentar granja Citrix XenApp 6.5 con Powershell: Servidores