Cuando se piensa en Parallels RAS, la mayoría de los administradores piensan en su interfaz gráfica. Sin embargo, hay mucho más allá de esa consola, sobre todo cuando se usa la API de PowerShell de Parallels RAS para gestionar recursos y usuarios. Gracias a la API de PowerShell de Parallels (módulo RASAdmin), es posible automatizar todas las operaciones de administración: publicación de aplicaciones, gestión de filtros de acceso, aprovisionamiento de certificados, integración de tenants… Todo se puede programar, versionar e integrar en tus pipelines de CI/CD o en tus herramientas ITSM.
Este artículo ofrece una visión general de las capacidades de la API de PowerShell, sus ventajas concretas para los equipos de TI, los requisitos técnicos y una serie de laboratorios progresivos para practicar.
Lo que puede hacer la API de PowerShell de Parallels RAS
La regla de oro es sencilla: todo lo que se puede hacer en la consola gráfica de Parallels RAS se puede hacer con la API de PowerShell. Estas son las principales categorías de operaciones:
1. Gestión de recursos publicados
- Publicar aplicaciones y escritorios remotos
- Aplicar filtros de acceso (usuarios/grupos, rangos de IP, tipos de cliente…)
- Gestionar reglas de autorización y denegación sobre los elementos publicados
2. Gestión de certificados
- Crear y desplegar certificados SSL (manuales o con Let’s Encrypt)
- Configurar las renovaciones automáticas
- Asociar certificados a los Secure Gateways o a los balanceadores de carga
3. Arquitectura multitenant
- Unir un Tenant Broker desde un script
- Generar claves secretas para el registro de tenants
- Automatizar la incorporación de nuevos entornos
4. Configuración global de la granja
- Gestionar brokers, gateways y pools de servidores RDS
- Aplicar configuraciones de forma idempotente
- Integrar Parallels RAS en Ansible, Terraform o scripts de despliegue
Además, el módulo de PowerShell RASAdmin expone todos los recursos a través de una API REST (puerto 20443), lo que permite integrarlo desde cualquier lenguaje o plataforma.
Ventajas de la automatización con la API de PowerShell
Ahorro de tiempo y coherencia
En lugar de repetir a mano las mismas operaciones en cada nuevo entorno, un script de PowerShell garantiza una configuración idéntica en cada ejecución. Se acabaron los olvidos y los errores humanos de configuración.
Integración en pipelines DevOps
Los scripts de RASAdmin pueden ejecutarse desde Azure DevOps, GitHub Actions, Jenkins o cualquier otro sistema de CI/CD. Esto abre la puerta al aprovisionamiento de tus entornos Parallels RAS como «infraestructura como código».
Trazabilidad y auditoría
Un script versionado en Git es un historial claro de cada cambio en la infraestructura. Ante un incidente, se puede volver a aplicar o deshacer una configuración concreta.
Escalabilidad
Por tanto, gestiones 5 o 500 tenants, el esfuerzo de administración se mantiene constante. Un solo script puede aprovisionar decenas de entornos en cuestión de segundos.
Multiplataforma gracias a REST
Más allá de PowerShell, la API REST de Parallels RAS permite interactuar desde cualquier herramienta capaz de hacer peticiones HTTP: Postman, Python, aplicaciones web, etc.
Requisitos previos
- Windows Server (o un puesto Windows) con PowerShell 5.1 o PowerShell 7+
- Parallels RAS instalado (con el Connection Broker en marcha)
- Acceso de red al servidor que aloja el Connection Broker
- Cuenta de administrador de RAS con derechos suficientes
Instalar el módulo RASAdmin
Opción 1. Para empezar, si prefieres una instalación gráfica, puedes lanzar el instalador estándar de Parallels RAS. Después, elige «Custom installation» y selecciona el componente «Parallels RAS PowerShell».
Opción 2. Instalación silenciosa (MSI):
msiexec /i RASInstaller-*.msi ADDLOCAL=F_PowerShell /qn
Importante: la versión de los binarios de RAS PowerShell debe coincidir exactamente con la del RAS Connection Broker. Una versión distinta provoca errores de conexión.
Comprobar e importar el módulo
Import-Module RASAdmin
Get-Command -Module RASAdmin
Documentación completa: https://docs.parallels.com/landing/ras-powershell-api-guide
Serie de laboratorios: práctica
0. Conexión y primer comando
$username = "apiuser"
$password = "YourPassword!"
$server = "rasbroker.your-domain.local"
$passwordEnc = ConvertTo-SecureString $password -AsPlainText -Force
New-RASSession -Username $username -Password $passwordEnc -Server $server
Get-RASBroker
Remove-RASSession
1. Publicar una aplicación y un escritorio
$passwordEnc = ConvertTo-SecureString $password -AsPlainText -Force
New-RASSession -Username $username -Password $passwordEnc -Server $server
$pool = Get-RASRDSHostPool -Name "RDSH Pool"
$desktop = New-RASPubRDSDesktop -Name "MyDesktop" -PublishFrom HostPool -PublishFromHostPoolIds $pool.Id -DesktopSize UseAvailableArea
$app = New-RASPubRDSApp -Name "Paint" -PublishFrom HostPool -PublishFromHostPoolIds $pool.Id -Target "%windir%system32mspaint.exe"
Invoke-RASApply
Remove-RASSession
2. Añadir filtros de acceso
New-RASSession -Username $username -Password $passwordEnc -Server $server
$app = Get-RASPubRDSApp -Name "Paint"
Add-RASRule -Id $app.Id -ObjType PubItem -RuleName "MyFilter"
$rules = Get-RASRule -Id $app.Id -ObjType PubItem
Set-RASCriteria -Id $app.Id -ObjType PubItem -SecurityPrincipalsEnabled $true -IPsEnabled $true -RuleId $rules[0].Id
Add-RASCriteriaSecurityPrincipal -Id $app.Id -ObjType PubItem -RuleId $rules[0].Id -Account "Guests"
Add-RASCriteriaIP -Id $app.Id -ObjType PubItem -RuleId $rules[0].Id -IPType Version4 -IP "192.168.1.1-192.168.1.50"
Set-RASPubItemFilter -Id $app.Id -Default Deny
Invoke-RASApply
Remove-RASSession
3. Crear un certificado Let’s Encrypt
New-RASSession -Username $username -Password $passwordEnc -Server $labServer
Set-RASLetsEncryptSettings -SiteID 1 -TermsAccepted $true
Invoke-RASApply
New-RASCertificate -Name "CertGateway" -CommonName "ras.your-public-domain.com" -Email "[email protected]" -LetsEncrypt -Enabled $true -Organisation "Your Organisation" -KeySize KeySize2048 -Usage Gateway
Invoke-RASApply
Remove-RASSession
4. Unir un Tenant Broker
New-RASSession -Username $username -Password $password -Server $tenantBroker
Set-RASTenantBrokerSettings -AllowRegistrationWithSecretKey $true
Invoke-RASApply
$secretKey = Invoke-RASTenantBrokerSettings -Command GenerateHash
Invoke-RASApply
Remove-RASSession
New-RASSession -Username $username -Password $password -Server $labServer
Invoke-RASTenantBroker -Join -HashKey $secretKey -TenantBroker $tenantBroker -PublicDomainAddresses "lab1.your-public-domain.com" -TenantName $labServer
Invoke-RASApply
Remove-RASSession
Buenas prácticas
- No guardes nunca contraseñas en texto plano: usa el Administrador de credenciales de Windows, Azure Key Vault o los secretos de tu CI/CD.
- Llama siempre a Invoke-RASApply: sin esta llamada, los cambios quedan pendientes.
- Cierra bien la sesión: usa Remove-RASSession dentro de un bloque try/finally.
- Versiona tus scripts: guárdalos en Git para tener trazabilidad y poder volver atrás.
Recursos oficiales:
- La guía completa de automatización con PowerShell: https://docs.parallels.com/landing/ras-powershell-api-guide
- Recursos esenciales para integraciones web: https://docs.parallels.com/landing/ras-rest-api-guide
- Prueba todas las funciones en tu laboratorio: https://parallels.com/products/ras/try
Conclusión
La API de PowerShell de Parallels RAS convierte la gestión de la infraestructura de publicación en un proceso reproducible, auditable y escalable. Tanto si eres un administrador de sistemas que quiere ahorrar tiempo en tareas repetitivas como un arquitecto que integra Parallels RAS en un pipeline DevOps, estos cmdlets te dan el control preciso que necesitas. La serie de laboratorios de este artículo es una base sólida: explora la documentación oficial y experimenta.
