次の方法で共有


PowerShell を使用して Azure Cloud Services (クラシック) のロールでリモート デスクトップ接続を有効にする

重要

Cloud Services (クラシック) は、2024 年 9 月 1 日をもって、すべてのお客様に対して非推奨になりました。 実行中の既存のデプロイはすべて Microsoft によって停止およびシャットダウンされ、2024 年 10 月以降、そのデータは永久に失われます。 新しいデプロイでは、新しい Azure Resource Manager ベースのデプロイ モデル Azure Cloud Services (延長サポート) を使用する必要があります。

リモート デスクトップを使用して、Azure で実行されているロールのデスクトップにアクセスできます。 リモート デスクトップ接続を使用すると、アプリケーションの問題をその実行中にトラブルシューティングしたり、診断したりできます。

この記事では、PowerShell を使用して、クラウド サービスのロールでリモート デスクトップを有効にする方法について説明します。 この記事に必要な前提条件については、 Azure PowerShell をインストールして構成する方法 を参照してください。 PowerShell では、リモート デスクトップ拡張機能を使用するため、アプリケーションのデプロイ後にリモート デスクトップを有効化できます。

PowerShell からリモート デスクトップを構成する

Set-AzureServiceRemoteDesktopExtension コマンドレットを使用すると、クラウド サービスデプロイの指定されたロールまたはすべてのロールでリモート デスクトップを有効にすることができます。 このコマンドレットを使用すると、PSCredential オブジェクトを受け入れる Credential パラメーターを使用して、リモート デスクトップ ユーザーのユーザー名とパスワードを指定できます。

PowerShell を対話形式で使用する場合は、 Get-Credentials コマンドレットを呼び出して PSCredential オブジェクトを簡単に設定できます。

$remoteusercredentials = Get-Credential

このコマンドにより、リモート ユーザーのユーザー名とパスワードを安全な方法で入力できるダイアログ ボックスが表示されます。

PowerShell は自動化シナリオに役立つので、ユーザーの操作を必要としない方法で PSCredential オブジェクトを設定することもできます。 最初に、セキュリティで保護されたパスワードを設定する必要があります。 最初に、 ConvertTo-SecureString を使用してプレーンテキスト パスワードをセキュリティで保護された文字列に変換します。 次に、 ConvertFrom-SecureString を使用して、このセキュリティで保護された文字列を暗号化された標準文字列に変換する必要があります。 これで、 Set-Content を使用して、この暗号化された標準文字列をファイルに保存できます。

パスワードを毎回手動で入力しなくても済むように、セキュリティで保護されたパスワード ファイルを作成することもできます。 また、セキュリティで保護されたパスワード ファイルはプレーン テキスト ファイルよりも適切です。 セキュリティで保護されたパスワード ファイルを作成するには、次の PowerShell を使用します。

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

重要

パスワードを設定するときは、 複雑さの要件を満たしていることを確認します。

セキュリティで保護されたパスワード ファイルから資格情報オブジェクトを作成するには、 ConvertTo-SecureString を使用してファイルの内容を読み取り、セキュリティで保護された文字列に変換する必要があります。

Set-AzureServiceRemoteDesktopExtension コマンドレットは、ユーザー アカウントの有効期限が切れる DateTime を指定する Expiration パラメーターも受け取ります。 たとえば、現在の日時から数日後にアカウントの期限が切れるように設定することもできます。

次の PowerShell の例では、クラウド サービスでリモート デスクトップ拡張機能を設定する方法を示しています。

$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

また、必要に応じて、リモート デスクトップを有効にするデプロイ スロットおよびロールを指定することもできます。 これらのパラメーターが指定されていない場合、コマンドレットは 運用 デプロイ スロットのすべてのロールでリモート デスクトップを有効にします。

リモート デスクトップ拡張機能は、デプロイに関連付けられています。 サービスの新しいデプロイを作成した場合は、そのデプロイでリモート デスクトップを有効にする必要があります。 常にリモート デスクトップを有効にしておく必要がある場合は、PowerShell スクリプトをデプロイのワークフローに統合することを検討してください。

ロール インスタンスへのリモート デスクトップ接続

Get-AzureRemoteDesktopFile コマンドレットは、クラウド サービスの特定のロール インスタンスへのリモート デスクトップに使用されます。 LocalPath パラメーターを使用して、リモート デスクトップ プロトコル (RDP) ファイルをローカルにダウンロードできます。 または、 Launch パラメーターを使用して、クラウド サービス ロール インスタンスにアクセスするためのリモート デスクトップ接続ダイアログを直接起動できます。

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

サービスでリモート デスクトップ拡張機能が有効になっているかどうかを確認する

Get-AzureServiceRemoteDesktopExtension コマンドレットは、サービスのデプロイでリモート デスクトップが有効または無効になっていることを表示します。 このコマンドレットによって、リモート デスクトップ ユーザーのユーザー名と、リモート デスクトップ拡張機能が有効になっているロールが返されます。 既定では、デプロイ スロットが使用されますが、代わりにステージング スロットを使用することもできます。

Get-AzureServiceRemoteDesktopExtension -ServiceName $servicename

リモート デスクトップ拡張機能をサービスから削除する

デプロイで既にリモート デスクトップ拡張機能を有効にしている状態で、リモート デスクトップ設定を更新する必要がある場合は、まず拡張機能を削除します。 次に、新しい設定でもう一度有効にします。 たとえば、リモート ユーザー アカウントに新しいパスワードを設定する必要がある場合や、アカウントの有効期限が切れた場合などです。 この手順は、リモート デスクトップ拡張機能が有効になっている既存のデプロイで実行する必要があります。 新しいデプロイの場合は、拡張機能を直接適用できます。

リモート デスクトップ拡張機能をデプロイから削除するには、 Remove-AzureServiceRemoteDesktopExtension コマンドレットを 使用します。 また、必要に応じて、リモート デスクトップ拡張機能を削除するデプロイ スロットおよびロールを指定することもできます。

Remove-AzureServiceRemoteDesktopExtension -ServiceName $servicename -UninstallConfiguration

拡張機能の構成を完全に削除するには、UninstallConfiguration パラメーターを指定して remove コマンドレットを呼び出す必要があります。

UninstallConfiguration パラメーターは、サービスに適用されるすべての拡張機能の構成をアンインストールします。 拡張機能の構成は、いずれもサービスの構成に関連付けられています。 UninstallConfiguration を使用せずに remove コマンドレットを呼び出すと、展開の関連付けが拡張機能の構成から解除され、拡張機能が効果的に削除されます。 ただし、拡張機能の構成は、サービスに関連付けられたままになります。

次のステップ