Abilitare una connessione Desktop remoto per un ruolo in Servizi cloud di Azure con PowerShellEnable Remote Desktop Connection for a Role in Azure Cloud Services using PowerShell

Desktop remoto consente di accedere al desktop di un ruolo in esecuzione in Azure.Remote Desktop enables you to access the desktop of a role running in Azure. È possibile usare una connessione Desktop remoto per risolvere e diagnosticare i problemi dell'applicazione mentre è in esecuzione.You can use a Remote Desktop connection to troubleshoot and diagnose problems with your application while it is running.

Questo articolo descrive come abilitare Desktop remoto nei ruoli dei servizi cloud con PowerShell.This article describes how to enable remote desktop on your Cloud Service Roles using PowerShell. Per i prerequisiti necessari per questo articolo, vedere Come installare e configurare Azure PowerShell .See How to install and configure Azure PowerShell for the prerequisites needed for this article. PowerShell usa l'estensione di Desktop remoto per poter abilitare Desktop remoto dopo la distribuzione dell'applicazione.PowerShell utilizes the Remote Desktop Extension so you can enable Remote Desktop after the application is deployed.

Configurare Remote Desktop da PowerShellConfigure Remote Desktop from PowerShell

Il cmdlet Set AzureServiceRemoteDesktopExtension consente di abilitare Desktop remoto su tutti o specifici ruoli di distribuzione del servizio cloud.The Set-AzureServiceRemoteDesktopExtension cmdlet allows you to enable Remote Desktop on specified roles or all roles of your cloud service deployment. Il cmdlet consente di specificare il nome utente e la password per l'utente Desktop remoto tramite il parametro Credential che accetta un oggetto PSCredential.The cmdlet lets you specify the Username and Password for the remote desktop user through the Credential parameter that accepts a PSCredential object.

Se si usa PowerShell in modo interattivo è possibile impostare facilmente l'oggetto PSCredential chiamando il cmdlet Get-Credentials .If you are using PowerShell interactively, you can easily set the PSCredential object by calling the Get-Credentials cmdlet.

$remoteusercredentials = Get-Credential

Il comando visualizza una finestra di dialogo in cui immettere in modo sicuro il nome utente e la password per l'utente remoto.This command displays a dialog box allowing you to enter the username and password for the remote user in a secure manner.

Poiché PowerShell è utile negli scenari di automazione, è anche possibile configurare l'oggetto PSCredential in modo che non richieda l'interazione dell'utente.Since PowerShell helps in automation scenarios, you can also set up the PSCredential object in a way that doesn't require user interaction. In questo caso, è necessario configurare una password di protezione.First, you need to set up a secure password. Per iniziare, specificare una password non crittografata e convertirla in una stringa sicura con ConvertTo-SecureString.You begin with specifying a plain text password convert it to a secure string using ConvertTo-SecureString. Quindi è necessario convertire questa stringa sicura in una stringa standard crittografata con ConvertFrom-SecureString.Next you need to convert this secure string into an encrypted standard string using ConvertFrom-SecureString. Ora è possibile salvare questa stringa crittografata standard in un file con Set-Content.Now you can save this encrypted standard string to a file using Set-Content.

È anche possibile creare un file della password di protezione in modo che non sia necessario digitarla ogni volta.You can also create a secure password file so that you don't have to type in the password every time. Inoltre, un file della password di protezione è preferibile a un file di testo normale.Also, a secure password file is better than a plain text file. Usare il codice di PowerShell seguente per creare un file della password sicura:Use the following PowerShell to create a secure password file:

ConvertTo-SecureString -String "Password123" -AsPlainText -Force | ConvertFrom-SecureString | Set-Content "password.txt"

Importante

Quando si imposta la password, assicurarsi che soddisfi i requisiti di complessità.When setting the password, make sure that you meet the complexity requirements.

Per creare l'oggetto credential dal file della password di protezione, è necessario leggere il contenuto del file e riconvertirlo in una stringa sicura con ConvertTo-SecureString.To create the credential object from the secure password file, you must read the file contents and convert them back to a secure string using ConvertTo-SecureString.

Il cmdlet Set AzureServiceRemoteDesktopExtension accetta anche un parametro Expiration che specifica un valore DateTime che specifica la scadenza dell'account utente.The Set-AzureServiceRemoteDesktopExtension cmdlet also accepts an Expiration parameter, which specifies a DateTime at which the user account expires. Ad esempio, è possibile impostare la scadenza dell'account alcuni giorni dopo la data e l'ora correnti.For example, you could set the account to expire a few days from the current date and time.

Questo esempio di PowerShell illustra come impostare l'estensione di Desktop remoto in un servizio cloud:This PowerShell example shows you how to set the Remote Desktop Extension on a cloud service:

$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

È anche possibile specificare lo slot di distribuzione e i ruoli per i quali si vuole abilitare Desktop remoto.You can also optionally specify the deployment slot and roles that you want to enable remote desktop on. Se questi parametri non vengono specificati, il cmdlet abilita Desktop remoto su tutti i ruoli nello slot di distribuzione Produzione .If these parameters are not specified, the cmdlet enables remote desktop on all roles in the Production deployment slot.

L'estensione per il Desktop remoto è associata a una distribuzione.The Remote Desktop extension is associated with a deployment. Se si crea una nuova distribuzione per il servizio, si dovrà abilitare Desktop remoto in quella distribuzione.If you create a new deployment for the service, you have to enable remote desktop on that deployment. Se si vuole che Desktop remoto sia sempre abilitato, considerare la possibilità di integrare gli script di PowerShell nel flusso di lavoro di distribuzione.If you always want to have remote desktop enabled, then you should consider integrating the PowerShell scripts into your deployment workflow.

Desktop remoto in un'istanza del ruoloRemote Desktop into a role instance

Il cmdlet Get-AzureRemoteDesktopFile viene usato per integrare Desktop remoto in una specifica istanza del ruolo del servizio cloud.The Get-AzureRemoteDesktopFile cmdlet is used to remote desktop into a specific role instance of your cloud service. È possibile usare il parametro LocalPath per scaricare il file RDP in locale.You can use the LocalPath parameter to download the RDP file locally. In alternativa si può usare il parametro Launch per avviare direttamente la finestra di dialogo Connessione Desktop remoto per accedere all'istanza del ruolo del servizio cloud.Or you can use the Launch parameter to directly launch the Remote Desktop Connection dialog to access the cloud service role instance.

Get-AzureRemoteDesktopFile -ServiceName $servicename -Name "WorkerRole1_IN_0" -Launch

Verificare se l'estensione di Desktop remoto è attivata in un servizioCheck if Remote Desktop extension is enabled on a service

Il cmdlet Get AzureServiceRemoteDesktopExtension indica che Desktop remoto è abilitato o disabilitato in una distribuzione del servizio.The Get-AzureServiceRemoteDesktopExtension cmdlet displays that remote desktop is enabled or disabled on a service deployment. Il cmdlet restituisce il nome utente per l'utente Desktop remoto e i ruoli per quali è abilitata l'estensione di Desktop remoto.The cmdlet returns the username for the remote desktop user and the roles that the remote desktop extension is enabled for. Per impostazione predefinita, ciò avviene nello slot di distribuzione ed è possibile scegliere di usare in alternativa lo slot di staging.By default, this happens on the deployment slot and you can choose to use the staging slot instead.

Get-AzureServiceRemoteDesktopExtension -ServiceName $servicename

Rimuovere l'estensione di Desktop remoto da un servizioRemove Remote Desktop extension from a service

Se già stata abilitata l'estensione di Desktop remoto in una distribuzione ed è necessario aggiornare le impostazioni di Desktop remoto, occorre prima di tutto rimuovere l'estensioneIf you have already enabled the remote desktop extension on a deployment, and need to update the remote desktop settings, first remove the extension. e quindi riabilitarla con le nuove impostazioni.And enable it again with the new settings. Ad esempio, se si vuole impostare una nuova password per l'account utente remoto o l'account scaduto.For example, if you want to set a new password for the remote user account, or the account expired. Questa operazione è necessaria nelle distribuzioni esistenti in cui è abilitata l'estensione di Desktop remoto.Doing this is required on existing deployments that have the remote desktop extension enabled. Per le nuove distribuzioni è possibile applicare semplicemente l'estensione direttamente.For new deployments, you can simply apply the extension directly.

Per rimuovere l'estensione di Desktop remoto dalla distribuzione, è possibile usare il cmdlet Remove AzureServiceRemoteDesktopExtension .To remove the remote desktop extension from the deployment, you can use the Remove-AzureServiceRemoteDesktopExtension cmdlet. È anche possibile specificare lo slot di distribuzione e il ruolo dal quale si vuole rimuovere l'estensione di Desktop remoto.You can also optionally specify the deployment slot and role from which you want to remove the remote desktop extension.

Remove-AzureServiceRemoteDesktopExtension -ServiceName $servicename -UninstallConfiguration

Nota

Per rimuovere completamente la configurazione dell'estensione, è necessario chiamare il cmdlet remove con il parametro UninstallConfiguration .To completely remove the extension configuration, you should call the remove cmdlet with the UninstallConfiguration parameter.

Il parametro UninstallConfiguration disinstalla qualsiasi configurazione dell'estensione applicata al servizio.The UninstallConfiguration parameter uninstalls any extension configuration that is applied to the service. Ogni configurazione dell'estensione è associata alla configurazione del servizio.Every extension configuration is associated with the service configuration. Se si chiama il cmdlet remove senza UninstallConfiguration, la distribuzione verrà dissociata dalla configurazione dell'estensione, che verrà così rimossa.Calling the remove cmdlet without UninstallConfiguration disassociates the deployment from the extension configuration, thus effectively removing the extension. La configurazione dell'estensione rimane comunque associata al servizio.However, the extension configuration remains associated with the service.

Risorse aggiuntiveAdditional resources

Come configurare i servizi cloud Domande frequenti sui servizi cloud - Desktop remotoHow to Configure Cloud Services Cloud services FAQ - Remote Desktop