Habilitación de la conexión a Escritorio remoto para un rol de Azure Cloud Services (clásico) mediante PowerShell
Importante
Cloud Services (clásico) ahora está en desuso para todos los clientes a partir del 1 de septiembre de 2024. Microsoft detendrá y apagará las implementaciones en ejecución existentes y los datos se perderán de forma permanente a partir de octubre de 2024. Las nuevas implementaciones deben utilizar el nuevo modelo de implementación basado en Azure Resource Manager Azure Cloud Services (soporte extendido) .
Escritorio remoto le permite tener acceso al escritorio de un rol que se ejecuta en Azure. Puede usar una conexión a Escritorio remoto para solucionar y diagnosticar problemas con la aplicación mientras se ejecuta.
En este artículo se describe cómo habilitar Escritorio remoto en los roles del servicio en la nube con PowerShell. Para conocer los requisitos previos necesarios para este artículo, consulte Cómo instalar y configurar Azure PowerShell . PowerShell usa la extensión de Escritorio remoto, por lo que Escritorio remoto se puede habilitar después de la implementación de la aplicación.
Configuración de Escritorio remoto desde PowerShell
El cmdlet Set-AzureServiceRemoteDesktopExtension permite habilitar Escritorio remoto en los roles especificados o en todos los roles de la implementación del servicio en la nube. Este cmdlet permite especificar el nombre de usuario y la contraseña del usuario de Escritorio remoto a través del parámetro Credential , que acepta un objeto PSCredential.
Si usa PowerShell de forma interactiva, puede establecer fácilmente el objeto PSCredential llamando al cmdlet Get-Credentials.
$remoteusercredentials = Get-Credential
Este comando muestra un cuadro de diálogo que permite especificar el nombre de usuario y la contraseña del usuario remoto de forma segura.
Dado que PowerShell sirve de ayuda en los escenarios de automatización, también es posible configurar el objeto PSCredential de manera que no requiera la interacción del usuario. En primer lugar es preciso configurar una contraseña segura. Para empezar, es preciso especificar una contraseña de texto sin formato y convertirla en una cadena segura con ConvertTo-SecureString. Seguidamente, hay que convertir esta cadena segura en una cadena estándar cifrada, para lo que se usa ConvertFrom-SecureString. Ya se puede guardar la cadena estándar cifrada en un archivo con Set-Content.
También puede crear un archivo de contraseña segura para que no tenga que escribir la contraseña cada vez. Además, un archivo de contraseña segura es mejor que un archivo de texto sin formato. Use la siguiente instrucción de PowerShell para crear un archivo de contraseña seguro:
ConvertTo-SecureString -String "Password123" -AsPlainText -Force | ConvertFrom-SecureString | Set-Content "password.txt"
Importante
Al establecer la contraseña asegúrese de cumplir los requisitos de complejidad.
Para crear el objeto de credencial desde el archivo de contraseña seguro debe leer el contenido del archivo y convertirlo en una cadena segura con ConvertTo-SecureString.
El cmdlet Set-AzureServiceRemoteDesktopExtension también acepta un parámetro Expiration que especifica un valor DateTime en que la cuenta de usuario caducará. Por ejemplo, puede establecer que la cuenta caduque unos días después de la fecha y hora actuales.
En este ejemplo de PowerShell se muestra cómo establecer la extensión de Escritorio remoto en un servicio en la nube:
$servicename = "cloudservice"
$username = "RemoteDesktopUser"
$securepassword = Get-Content -Path "password.txt" | ConvertTo-SecureString
$expiry = $(Get-Date).AddDays(1)
$credential = New-Object System.Management.Automation.PSCredential $username,$securepassword
Set-AzureServiceRemoteDesktopExtension -ServiceName $servicename -Credential $credential -Expiration $expiry
Opcionalmente, también puede especificar la ranura de implementación y los roles en que desea habilitar Escritorio remoto. Si no se especifican estos parámetros, el cmdlet habilita el Escritorio remoto en todos los roles de la ranura de implementación de producción.
La extensión de Escritorio remoto se asocia con una implementación. Si crea una nueva implementación para el servicio, tendrá que habilitar el Escritorio remoto en la nueva implementación. Si desea que Escritorio remoto esté siempre habilitado, debe considerar la integración de scripts de PowerShell en el flujo de trabajo de implementación.
Escritorio remoto en una instancia de rol
El cmdlet Get-AzureRemoteDesktopFile se usa para introducir Escritorio remoto en una instancia de rol específica del servicio en la nube. Puede usar el parámetro LocalPath para descargar el archivo del Protocolo de escritorio remoto (RDP) localmente. O bien puede usar el parámetro Launch para iniciar directamente el cuadro de diálogo Conexión a Escritorio remoto para tener acceso a la instancia de rol del servicio en la nube.
Get-AzureRemoteDesktopFile -ServiceName $servicename -Name "WorkerRole1_IN_0" -Launch
Comprobación de si la extensión de Escritorio remoto está habilitada en un servicio
El cmdlet Get-AzureServiceRemoteDesktopExtension muestra si Escritorio remoto está habilitado o no en una implementación de servicio. El cmdlet devuelve el nombre de usuario del usuario de Escritorio remoto y los roles en la que está habilitada la extensión de Escritorio remoto. De forma predeterminada, se usa la ranura de implementación, pero puede optar por usar la ranura de ensayo en su lugar.
Get-AzureServiceRemoteDesktopExtension -ServiceName $servicename
Eliminación de la extensión de Escritorio remoto de un servicio
Si ya ha habilitado la extensión de Escritorio remoto en una implementación y necesita actualizar la configuración de Escritorio remoto, quite primero la extensión. A continuación, vuelva a habilitarlo con la nueva configuración. Por ejemplo, si quiere establecer una nueva contraseña para la cuenta de usuario remoto o porque la cuenta ha caducado. Este paso solo se requiere en las implementaciones existentes que tienen la extensión de Escritorio remoto habilitada. En el caso de las nuevas implementaciones, puede aplicar la extensión directamente.
Para quitar la extensión de Escritorio remoto de la implementación, puede usar el cmdlet Remove-AzureServiceRemoteDesktopExtension . Opcionalmente, también puede especificar la ranura de implementación y los roles de los que desea habilitar la extensión de Escritorio remoto.
Remove-AzureServiceRemoteDesktopExtension -ServiceName $servicename -UninstallConfiguration
Nota:
Para quitar completamente la configuración de la extensión se debe llamar al cmdlet remove con el parámetro UninstallConfiguration .
El parámetro UninstallConfiguration desinstala cualquier configuración de la extensión que se aplica al servicio. Cada configuración de la extensión se asocia a la configuración del servicio. Si se llama al cmdlet remove sin UninstallConfiguration, se desasocia la implementación de la configuración de la extensión, con lo que se quitará eficazmente la extensión. Sin embargo, la configuración de la extensión sigue estando asociada al servicio.