Citrix Virtual Apps and Desktops Service

SDK y API

SDK de PowerShell remoto de Citrix Virtual Apps and Desktops

El SDK de PowerShell remoto automatiza las tareas repetitivas y complejas. Proporciona el mecanismo para configurar y administrar el entorno de Citrix Virtual Apps and Desktops Service sin utilizar la interfaz de usuario de Studio.

Qué diferencias hay entre este SDK y el SDK para implementaciones administradas por el cliente

En una implementación de Citrix Virtual Apps and Desktops instalada y administrada por los administradores del cliente, esos administradores ejecutan cmdlets y scripts en un sitio que contiene los VDA y los Delivery Controllers dentro de una estructura de dominio común. En cambio, Citrix Virtual Apps and Desktops Service separa los agentes VDA y los Controllers en una ubicación de recursos y el plano de control, respectivamente. Esta distribución significa que el SDK original de PowerShell de Citrix Virtual Apps and Desktops no funciona en un entorno de Citrix Virtual Apps and Desktops Service. No puede cruzar el límite seguro desde la ubicación de recursos hasta el plano de control.

La solución es el SDK de PowerShell remoto de Citrix Virtual Apps and Desktops. Al ejecutarse en la ubicación de recursos, el SDK de PowerShell remoto accede al plano de control como si fuera local. Esto proporciona la misma funcionalidad que un único sitio de Citrix Virtual Apps and Desktops. Solo existe una capa de comunicación no visible, la más baja, mejorada para funcionar en un solo sitio local o en el entorno de nube. Los cmdlets son los mismos y la mayoría de los scripts no cambian.

El cmdlet Get-XdAuthentication proporciona la autorización para cruzar la frontera entre la ubicación de recursos segura y el plano de control. De forma predeterminada, Get-XdAuthentication pide a los usuarios las credenciales de CAS. Este cmdlet solo debe utilizarse una vez por sesión de PowerShell. Como alternativa, el usuario puede definir un perfil de autenticación mediante una API de acceso seguro al cliente, creada en la consola de Citrix Cloud. En ambos casos, la información de seguridad se conserva para usarla en llamadas posteriores del SDK de PowerShell. Si este cmdlet no se ejecuta explícitamente, lo llama el primer cmdlet del SDK de PowerShell.

Instalar y utilizar el SDK de PowerShell remoto

Requisitos:

Nota:

No instale el SDK de PowerShell remoto en una máquina con Citrix Cloud Connector. Se puede instalar en cualquier máquina unida a un dominio dentro de la misma ubicación de recursos. Citrix recomienda no ejecutar los cmdlets de este SDK en los Cloud Connectors. La operación del SDK no concierne a los Cloud Connectors.

  • Compruebe que PowerShell 3.0 o posterior está disponible en la máquina.
  • El instalador del SDK descarga e instala .NET Framework 4.8 si no está instalado (o una versión posterior compatible).
  • Si la máquina ya tiene instalado el SDK de Citrix Virtual Apps and Desktops, quite ese SDK (de la sección Programas y características de Windows) antes de instalar el SDK de PowerShell remoto.

Para instalar el SDK de PowerShell remoto:

  1. En la página de descargas, descargue el SDK de PowerShell remoto de Virtual Apps and Desktops.
  2. Instale el SDK y ejecútelo.

Los registros de instalación se crean en %TEMP%\CitrixLogs\CitrixPoshSdk. Los registros pueden ayudar a resolver problemas de instalación.

Ejecute el SDK en un equipo unido a un dominio dentro de esa ubicación de recursos:

  • Abra una ventana de símbolo del sistema de PowerShell. No es necesario ejecutarla como administrador.
  • Agregue los complementos de Citrix: asnp citrix.*.
  • Puede autenticarse explícitamente mediante el cmdlet Get-XdAuthentication. O bien ejecute el primer comando del SDK de PowerShell de Citrix Virtual Apps and Desktops, que le solicita la misma autenticación que Get-XdAuthentication.
  • Para omitir la solicitud de autenticación, puede usar el cmdlet Set-XdCredentials y crear un perfil de autenticación predeterminado, que accederá mediante un cliente seguro creado en la consola de Citrix Cloud.
  • Continúe ejecutando cmdlets del SDK de PowerShell o scripts de automatización del SDK de PowerShell. He aquí un ejemplo.

Para desinstalar el SDK de PowerShell remoto, desde la función de Windows para quitar o cambiar programas, seleccione Citrix Virtual Apps and Desktops Remote PowerShell SDK. Haga clic con el botón secundario y seleccione Desinstalar. Siga el cuadro de diálogo.

Actividades de ejemplo

Por actividades comunes, se entiende la configuración de catálogos de máquinas, aplicaciones y usuarios. A continuación, se muestra un script de ejemplo.

    $users = "xd.local\Domain Users"

    $TSVDACatalogName = "TSVDA"

    $TSVDADGName = "TSVDA"

    $TSVDAMachineName = "xd\ds-tsvda2"

    #Create TSVDA Catalog

    $brokerUsers = New-BrokerUser -Name $users

    $catalog = New-BrokerCatalog -Name $TSVDACatalogName -AllocationType "Random" -Description $TSVDACatalogName -PersistUserChanges "OnLocal" -ProvisioningType "Manual" -SessionSupport "MultiSession" -MachinesArePhysical $true

    #Add TSVDA Machine to Catalog

    $BrokeredMachine = New-BrokerMachine -MachineName $TSVDAMachineName -CatalogUid $catalog.uid

    #Create new desktops & applications delivery group

    $dg = New-BrokerDesktopGroup -Name $TSVDADGName -PublishedName $TSVDADGName -DesktopKind "Shared" -SessionSupport "MultiSession" -DeliveryType DesktopsAndApps -Description $TSVDADGName

    #Create notepad application

    New-BrokerApplication -ApplicationType HostedOnDesktop -Name "Notepad" -CommandLineExecutable "notepad.exe" -DesktopGroup $dg

    #Assign users to desktops and applications

    New-BrokerEntitlementPolicyRule -Name $TSVDADGName -DesktopGroupUid $dg.Uid -IncludedUsers $brokerUsers -description $TSVDADGName

    New-BrokerAccessPolicyRule -Name $TSVDADGName -IncludedUserFilterEnabled $true -IncludedUsers $brokerUsers -DesktopGroupUid $dg.Uid -AllowedProtocols @("HDX","RDP")

    New-BrokerAppEntitlementPolicyRule -Name $TSVDADGName -DesktopGroupUid $dg.Uid -IncludedUsers $brokerUsers -description $TSVDADGName

    #Add machine to delivery group

    Add-BrokerMachine -MachineName $TSVDAMachineName -DesktopGroup $dg

Funciones disponibles y limitaciones

En esta versión, se admiten los siguientes complementos de PowerShell para Citrix Virtual Apps and Desktops:

  • Broker
  • Identidad de Active Directory (AD)
  • Creación de máquinas
  • Configuración
  • Registro de configuraciones
  • Host
  • Administración delegada
  • Analytics

Para obtener información detallada acerca de los cmdlets de esos complementos, consulte el SDK de Citrix Virtual Apps and Desktops.

Tras la autenticación, el acceso remoto será válido en la sesión actual de PowerShell durante 24 horas. Transcurrido ese tiempo, deberá introducir sus credenciales.

El SDK de PowerShell remoto debe ejecutarse en un equipo de la ubicación de recursos.

Los siguientes cmdlets están inhabilitados en las operaciones remotas para mantener la integridad y la seguridad del plano de control de Citrix Cloud.

Citrix.ADIdentity.Admin.V2:

  • Copy-AcctIdentityPool
  • Get-AcctDBConnection
  • Get-AcctDBSchema
  • Get-AcctDBVersionChangeScript
  • Get-AcctInstalledDBVersion
  • Remove-AcctServiceMetadata
  • Reset-AcctServiceGroupMembership
  • Set-AcctDBConnection
  • Set-AcctServiceMetadata
  • Test-AcctDBConnection

Citrix.Analytics.Admin.V1:

  • Get-AnalyticsDBConnection
  • Get-AnalyticsDBSchema
  • Get-AnalyticsDBVersionChangeScript
  • Get-AnalyticsInstalledDBVersion
  • Import-AnalyticsDataDefinition
  • Remove-AnalyticsServiceMetadata
  • Reset-AnalyticsServiceGroupMembership
  • Set-AnalyticsDBConnection
  • Set-AnalyticsServiceMetadata
  • Set-AnalyticsSite
  • Set-AnalyticsDBConnection

Citrix.DelegatedAdmin.Admin.V1:

  • Add-AdminRight
  • Get-AdminDBConnection
  • Get-AdminDBSchema
  • Get-AdminDBVersionChangeScript
  • Get-AdminInstalledDBVersion
  • Import-AdminRoleConfiguration
  • New-AdminAdministrator
  • Remove-AdminAdministrator
  • Remove-AdminAdministratorMetadata
  • Remove-AdminRight
  • Remove-AdminServiceMetadata
  • Reset-AdminServiceGroupMembership
  • Set-AdminAdministrator
  • Set-AdminAdministratorMetadata
  • Set-AdminDBConnection
  • Set-AdminServiceMetadata
  • Test-AdminDBConnection

Citrix.Broker.Admin.V2:

  • Get-BrokerDBConnection
  • Get-BrokerDBSchema
  • Get-BrokerDBVersionChangeScript
  • Get-BrokerInstalledDBVersion
  • Get-BrokerLease
  • New-BrokerMachineConfiguration
  • Remove-BrokerControllerMetadata
  • Remove-BrokerLease
  • Remove-BrokerLeaseMetadata
  • Remove-BrokerMachineConfigurationMetadata
  • Remove-BrokerMachineConfiguration
  • Remove-BrokerSiteMetadata
  • Remove-BrokerUserFromApplication
  • Reset-BrokerLicensingConnection
  • Reset-BrokerServiceGroupMembership
  • Set-BrokerControllerMetadata
  • Set-BrokerDBConnection
  • Set-BrokerLeaseMetadata
  • Set-BrokerMachineConfiguration
  • Set-BrokerMachineConfigurationMetadata
  • Set-BrokerSiteMetadata
  • Test-BrokerDBConnection
  • Test-BrokerLicenseServer
  • Update-BrokerBrokerLocalLeaseCache

Citrix.Configuration.Admin.V2:

  • Export-ConfigFeatureTable
  • Get-ConfigDBConnection
  • Get-ConfigDBSchema
  • Get-ConfigDBVersionChangeScript
  • Get-ConfigInstalledDBVersion
  • Get-ConfigServiceGroup
  • Import-ConfigFeatureTable
  • Register-ConfigServiceInstance
  • Remove-ConfigRegisteredServiceInstanceMetadata
  • Remove-ConfigServiceGroup
  • Remove-ConfigServiceGroupMetadata
  • Remove-ConfigServiceMetadata
  • Remove-ConfigSiteMetadata
  • Reset-ConfigServiceGroupMembership
  • Set-ConfigDBConnection
  • Set-ConfigRegisteredServiceInstance
  • Set-ConfigRegisteredServiceInstanceMetadata
  • Set-ConfigServiceGroupMetadata
  • Set-ConfigServiceMetadata
  • Set-ConfigSite
  • Set-ConfigSiteMetadata
  • Test-ConfigDBConnection
  • Unregister-ConfigRegisteredServiceInstance

Citrix.Host.Admin.V2:

  • Get-HypDBConnection
  • Get-HypDBSchema
  • Get-HypDBVersionChangeScript
  • Get-HypInstalledDBVersion
  • Remove-HypServiceMetadata
  • Reset-HypServiceGroupMembership
  • Set-HypDBConnection
  • Set-HypServiceMetadata
  • Test-HypDBConnection

Citrix.ConfigurationLogging.Admin.V1:

  • Get-LogDBConnection
  • Get-LogDBSchema
  • Get-LogDBVersionChangeScript
  • Get-LogInstalledDBVersion
  • Remove-LogOperation
  • Remove-LogServiceMetadata
  • Remove-LogSiteMetadata
  • Reset-LogDataStore
  • Reset-LogServiceGroupMembership
  • Set-LogDBConnection
  • Set-LogServiceMetadata
  • Set-LogSite
  • Set-LogSiteMetadata
  • Test-LogDBConnection

Citrix.MachineCreation.Admin.V2:

  • Get-ProvDBConnection
  • Get-ProvDBSchema
  • Get-ProvDBVersionChangeScript
  • Get-ProvInstalledDBVersion
  • Get-ProvServiceConfigurationData
  • Remove-ProvServiceConfigurationData
  • Remove-ProvServiceMetadata
  • Reset-ProvServiceGroupMembership
  • Set-ProvDBConnection
  • Set-ProvServiceConfigurationData
  • Set-ProvServiceMetadata
  • Test-ProvDBConnection

Citrix.EnvTest.Admin.V1:

  • Get-EnvTestDBConnection
  • Get-EnvTestDBSchema
  • Get-EnvTestDBVersionChangeScript
  • Get-EnvTestInstalledDBVersion
  • Remove-EnvTestServiceMetadata
  • Reset-EnvTestServiceGroupMembership
  • Set-EnvTestDBConnection
  • Set-EnvTestServiceMetadata
  • Test-EnvTestDBConnection

Citrix.Monitor.Admin.V1:

  • Get-MonitorConfiguration
  • Get-MonitorDBConnection
  • Get-MonitorDBSchema
  • Get-MonitorDBVersionChangeScript
  • Get-MonitorDataStore
  • Get-MonitorDataStore
  • Get-MonitorInstalledDBVersion
  • Remove-MonitorServiceMetadata
  • Reset-MonitorDataStore
  • Reset-MonitorServiceGroupMembership
  • Set-MonitorConfiguration
  • Set-MonitorDBConnection
  • Set-MonitorServiceMetadata
  • Test-MonitorDBConnection

Citrix.Storefront.Admin.V1:

  • Build-SfCluster
  • Get-SfClusters
  • Get-SfDBConnection
  • Get-SfDBSchema
  • Get-SfDBVersionChangeScript
  • Get-SfInstalledDBVersion

Módulo de detección de Citrix Virtual Apps and Desktops Service para paquetes y servidores de App-V

Citrix Virtual Apps and Desktops Service puede entregar aplicaciones contenidas en paquetes de App-V a sus dispositivos de punto final con uno de los métodos siguientes:

  • Método de administración única (acceso a paquetes desde un recurso compartido de red)
  • Método de administración dual (acceso a paquetes desde un servidor de administración de Microsoft App-V)

El proceso de registro de paquetes de App-V y servidores de publicación y de administración de Microsoft App-V con la biblioteca de aplicaciones mediante Citrix Virtual Apps and Desktops Service difiere ligeramente del registro de paquetes mediante una implementación local. Sin embargo, el proceso de asignar aplicaciones a los usuarios e iniciarlas en el dispositivo de punto final de un usuario es idéntico.

La consola de administración de servicios de Citrix Cloud no puede ver archivos en una ubicación de recursos. Además, no puede detectar directamente paquetes de App-V o servidores de Microsoft App-V en su infraestructura. El módulo de detección proporciona funciones que detectan la información de los paquetes de App-V en la infraestructura local y cargan la información de los paquetes en Virtual Apps and Desktops Service. La información de los paquetes incluye paquetes de App-V, servidores de Microsoft App-V y las aplicaciones que contienen los paquetes.

El módulo de detección utiliza el SDK de PowerShell remoto de Virtual Apps and Desktops. Puede detectar información de paquetes de un recurso compartido de red o de un servidor de administración de Microsoft App-V. Utilice el módulo de detección en una máquina de su ubicación de recursos.

Requisitos previos para utilizar el módulo de detección:

  • Compruebe que PowerShell 3.0 o posterior está disponible en la máquina.
  • Compruebe que el SDK de PowerShell remoto de Citrix Virtual Apps and Desktops está instalado en la máquina.
  • Compruebe que tiene acceso al recurso compartido de red que contiene los paquetes App-V.
  • Compruebe que tiene acceso al servidor donde están instalados los Citrix Cloud Connectors y donde se aloja el servidor de administración de Microsoft App-V.

Agregar paquetes de App-V a la biblioteca de aplicaciones en Citrix Cloud

Este procedimiento es válido para agregar paquetes de App-V desde recursos compartidos de red (administración única) y para agregar todos los paquetes de App-V publicados desde el servidor de administración de Microsoft App-V (administración dual). Con el método de administración dual, debe administrar los paquetes de App-V agregados al igual que cuando utiliza el método de administración única.

  1. Descargue el módulo de detección desde la página de descargas de Citrix Virtual Apps and Desktops Servicehttps://www.citrix.com/downloads/citrix-cloud/product-software/xenapp-and-xendesktop-service.html. Extraiga el archivo zip Citrix.Cloud.AppLibrary.Admin.v1.psm1 en una carpeta.

    Nota:

    Este archivo también se encuentra en la ISO de Citrix Virtual Apps and Desktops en Support\Tools\Scripts. Puede copiarlo localmente o hacer referencia a él directamente desde la unidad de CD.

  2. Compruebe que el SDK de PowerShell remoto de Citrix Virtual Apps and Desktops está instalado en la máquina.

  3. Vaya a la carpeta que contiene el módulo de detección. En la ventana de PowerShell, introduzca la ruta de acceso completa de la carpeta que contiene el módulo de detección y, a continuación, presione ENTRAR.

  4. Importe el módulo de detección con el comando Import-Module.\Citrix.Cloud.AppLibrary.Admin.v1.psm1.

  5. Agregue los paquetes de App-V a la biblioteca de aplicaciones de Citrix Cloud con uno de los métodos siguientes.

    • Para agregar paquetes de App-V desde un recurso compartido de red, ejecute el cmdlet de PowerShell: Import-AppVPackageToCloud.

      Por ejemplo: Import-AppVPackageToCloud –PackagePath \\AppVSrv\share\Notepad++.appv

      Para obtener ayuda sobre el cmdlet, escriba Get-Help Import-AppVPackageToCloud.

    • Para agregar paquetes de App-V desde un servidor de administración de Microsoft App-V, ejecute el cmdlet de PowerShell: Import-AppVPackagesFromManagementServerToCloud

      Por ejemplo: Import-AppVPackagesFromManagementServerToCloud –ManagementSrvFQDN AppVMngSrv.domain.local

      Para obtener ayuda sobre el cmdlet, escriba Get-Help Import-AppVPackagesFromManagementServerToCloud.

      Este comando importa todos los paquetes de App-V publicados desde el servidor de administración de Microsoft App-V en Citrix Cloud.

      Después de agregar los paquetes de App-V a Citrix Cloud, debe administrarlos como lo haría con el método de administración única.

  6. Inicie sesión en Citrix Cloud. Seleccione el cliente de destino. Una vez ejecutado correctamente el script, los paquetes de App-V se agregan a la biblioteca de aplicaciones en Citrix Cloud.

Quitar un paquete de App-V de la biblioteca de aplicaciones en Citrix Cloud

Para quitar un paquete de App-V de la biblioteca de aplicaciones en Citrix Cloud, consulte Eliminar un paquete de App-V de la biblioteca de aplicaciones en implementaciones locales.

Funciones de alto nivel de PowerShell

El módulo contiene las siguientes funciones de alto nivel que puede llamar desde su propio script de PowerShell:

  • Import-AppVPackageToCloud -PackagePath <Full UNC path to App-V package>

    Descubre y carga en Citrix Virtual Apps and Desktops Service toda la información necesaria para publicar aplicaciones de un único paquete de App-V.

  • Import-AppVPackagesFromManagementServerToCloud -ManagementSrvFQDN <FQDN of a Microsoft App-V Management Server>

    Descubre las rutas UNC de los paquetes publicados por el servidor de administración y llama a Import-AppVPackageToCloud para cada paquete.

    Los paquetes detectados de esta manera se cargan en Citrix Virtual Apps and Desktops Service con el método de administración única. Citrix Virtual Apps and Desktops Service no puede entregar paquetes con el método de administración dual.

  • Import-AppVDualAdminToCloud -ManagementSrvUrl <URL of a Microsoft App-V Management Server> -PublishingServerUrl <URL of a Microsoft App-V Publishing Server>

    Detecta servidores de publicación y de administración de Microsoft App-V e importa el contenido a la biblioteca de aplicaciones. Este cmdlet importa todos los paquetes administrados mediante el servidor de administración de Microsoft App-V e información relacionada. Los servidores se pueden agregar y quitar a través de PowerShell.

    Este cmdlet agrega paquetes de App-V en el modo de administración dual. Solo se importan los paquetes de App-V que se publican en el servidor de administración de Microsoft App-V y que tienen grupos de AD agregados. Si hace cambios en el servidor de administración de Microsoft App-V, vuelva a ejecutar este cmdlet para sincronizar la biblioteca de aplicaciones con el servidor de administración de Microsoft App-V.

  • Remove-AppVServerFromCloud -ManagementSrvUrl <URL of a Microsoft App-V Management Server> -PublishingServerUrl <URL of a Microsoft App-V Publishing Server>

    Quita los servidores de publicación y de administración de Microsoft App-V agregados a la biblioteca de aplicaciones.

    Este cmdlet quita los servidores de publicación y de administración de Microsoft App-V especificados, además de todos los paquetes de App-V asociados.

Ejecute el módulo de detección para paquetes y servidores de App-V en un equipo unido a un dominio dentro de esa ubicación de recursos: Siga las instrucciones indicadas en Instalar y utilizar el SDK de PowerShell remoto para comenzar. Continúe ejecutando cmdlets o scripts de PowerShell. Consulte los siguientes ejemplos.

Actividades de ejemplo

Importar el módulo de detección de paquetes de App-V de Virtual Apps and Desktops Service.

import-module "D:\Support\Tools\Scripts\Citrix.Cloud.AppLibrary.Admin.v1.psm1"

Recorrer el directorio del almacén de paquetes de App-V y cargar cada paquete.

Get-ChildItem -Path "\FileServer.domain.net\App-V Packages" -Filter *.appv |
Foreach-Object{
    Import-AppVPackageToCloud -PackagePath $_.FullName
}

Detectar y cargar paquetes registrados con un servidor de administración de Microsoft App-V.

Import-AppVPackagesFromManagementServerToCloud -ManagementSrvFQDN AppVManagementServer.domain.net

Detectar los servidores de publicación y de administración de Microsoft App-V y agregar la configuración a la biblioteca de aplicaciones. Esto también importa todos los paquetes administrados por el servidor de administración de Microsoft App-V en el modo de administración dual.

Import-AppVDualAdminCloud -ManagementSrvUrl http://AppVManagementServer.domain.net –PublishingServerUrl http://AppVManagementServer.domain.net:8001

Consultar la documentación de ayuda de PowerShell incluida en el módulo.

Get-Help Import-AppVPackageToCloud

Limitaciones

  • No puede detectar paquetes de App-V en la infraestructura de la ubicación de recursos directamente desde la consola de administración de servicios de Citrix Cloud.
  • La consola de administración de servicios de Citrix Cloud no tiene una conexión activa con el servidor de administración de App-V de Microsoft. Los cambios en los paquetes y otra configuración en el servidor de administración de App-V de Microsoft no se reflejan en la consola de administración de servicios hasta que Import-AppVDualAdminCloud se vuelve a ejecutar. Esto difiere del comportamiento de detección de paquetes de forma local).

API de OData para Monitor Service

Además de utilizar las funciones de Monitor para mostrar datos históricos, puede consultar datos mediante la API de Monitor Service. Utilice la API para:

  • Analizar tendencias históricas para planificaciones
  • Realizar informes de error detallados sobre problemas de máquina y conexión
  • Extraer información para insertarla en otras herramientas y procesos; por ejemplo, mediante las tablas de PowerPivot de Microsoft Excel para mostrar los datos de diferentes formas
  • Generar una interfaz de usuario personalizada en la parte superior de los datos que proporciona la API

Para obtener información detallada, consulte API de OData para Monitor Service. Para acceder a la API de Monitor Service, consulte Access Monitor Service data using the OData 4 endpoint in Citrix Cloud.

Las API de Citrix Virtual Apps and Desktops Service

Las API de Virtual Apps and Desktops Service están disponibles en https://developer.cloud.com/citrixworkspace/virtual-apps-and-desktops.

Renuncia de responsabilidades

Este software o código de muestra se proporciona “tal cual”, sin ningún tipo de declaración, garantía ni condición. Puede utilizarlo, modificarlo y distribuirlo bajo su propio riesgo. CITRIX RENUNCIA A TODAS LAS GARANTÍAS, EXPRESAS, IMPLÍCITAS, ESCRITAS, ORALES O LEGALES, INCLUIDAS, ENTRE OTRAS, GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR, TÍTULO Y NO INFRACCIÓN. Sin limitar el carácter general de lo anteriormente expuesto, Ud. reconoce y acepta (a) que el software o código de muestra puede presentar errores, fallos de diseño o cualquier otro problema, que pueden provocar una pérdida de datos o daños materiales; (b) que puede que no sea posible hacer funcionar por completo el software o código de muestra; y (c) que sin previo aviso y sin responsabilidad respecto a Ud., Citrix puede dejar de poner a su disposición la versión actual o las versiones futuras de este software o código de muestra. El software o código de muestra no debe utilizarse en ningún caso para dar apoyo a actividades de riesgo extremo, incluidas, a título enunciativo, actividades de explosión o de soporte vital. NI CITRIX NI SUS AFILIADOS O AGENTES SERÁN RESPONSABLES, POR INCUMPLIMIENTO DE CONTRATO O CUALQUIER OTRO PRINCIPIO DE RESPONSABILIDAD, DE CUALQUIER DAÑO QUE SE PRODUZCA DEL USO DEL SOFTWARE/CÓDIGO DE MUESTRA, INCLUIDOS PERO SIN LIMITACIÓN, DAÑOS DIRECTOS, ESPECIALES, INCIDENTALES, PUNITIVOS, CONSECUENTES O DE OTRO TIPO, AUNQUE SE INFORME DE LA POSIBILIDAD DE TALES DAÑOS. Ud. acepta indemnizar y defender a Citrix contra cualquier tipo de reclamación relativa al uso, modificación o distribución del código.