移行モジュール ツールを使用すると、organizationを Azure Virtual Desktop (クラシック) から Azure Virtual Desktop に自動的に移行できます。 この記事では、ツールの使用方法について説明します。
前提条件
移行モジュールを使用する前に、次の準備ができていることを確認してください。
新しい Azure サービス オブジェクトを作成する Azure サブスクリプション。
サブスクリプションに Azure オブジェクトを作成するには共同作成者ロールを割り当て、アプリケーション グループにユーザーを割り当てるにはユーザー アクセス管理者ロールを割り当てる必要があります。
移行する RDS テナントまたは特定のホスト プールに対する少なくともリモート デスクトップ サービス (RDS) 共同作成者アクセス許可。
Microsoft.RdInfra.RDPowershell PowerShell モジュールの最新バージョン。
Az.DesktopVirtualization PowerShell モジュールの最新バージョン。
Az.Resources PowerShell モジュールの最新バージョン。
コンピューターに移行モジュールをインストールします。
PowerShell または PowerShell ISE を使用して、この記事に表示されるスクリプトを実行します。 Microsoft.RdInfra.RDPowershell モジュールは PowerShell Core では機能しません。
重要
移行では、米国地域にのみサービス オブジェクトが作成されます。 サービス オブジェクトを別の地域に移行しようとすると、機能しません。 また、Azure Virtual Desktop (クラシック) デプロイに 500 を超えるアプリケーション グループがある場合は、移行できません。 移行できるのは、環境を再構築して、Microsoft Entra テナント内のアプリケーション グループの数を減らす場合のみです。
PowerShell 環境を準備する
まず、移行プロセス用に PowerShell 環境を準備する必要があります。
PowerShell 環境を準備するには:
開始する前に、次のコマンドレットを実行して、Az.Desktop Virtualization モジュールと Az.Resources モジュールの最新バージョンがあることを確認してください。
Get-Module Az.Resources Get-Module Az.DesktopVirtualization https://www.powershellgallery.com/packages/Az.DesktopVirtualization/ https://www.powershellgallery.com/packages/Az.Resources/そうでない場合は、次のコマンドレットを実行してモジュールをインストールしてインポートする必要があります。
Install-module Az.Resources Import-module Az.Resources Install-module Az.DesktopVirtualization Import-module Az.DesktopVirtualization次に、次のコマンドレットを実行して、現在の RDInfra PowerShell モジュールをアンインストールします。
Uninstall-Module -Name Microsoft.RDInfra.RDPowershell -AllVersionsその後、次のコマンドレットを使用して RDPowershell モジュールをインストールします。
Install-Module -Name Microsoft.RDInfra.RDPowershell -RequiredVersion 1.0.3414.0 -force Import-module Microsoft.RDInfra.RDPowershellすべてをインストールしたら、次のコマンドレットを実行して、適切なバージョンのモジュールがあることを確認します。
Get-Module Microsoft.RDInfra.RDPowershell次に、次のコマンドレットを実行して、移行モジュールをインストールしてインポートします。
Install-Module -Name PackageManagement -Repository PSGallery -Force Install-Module -Name PowerShellGet -Repository PSGallery -Force # Then restart shell Install-Module -Name Microsoft.RdInfra.RDPowershell.Migration -AllowClobber Import-Module <Full path to the location of the migration module>\Microsoft.RdInfra.RDPowershell.Migration.psd1完了したら、PowerShell ウィンドウで Azure Virtual Desktop (クラシック) にサインインします。
Add-RdsAccount -DeploymentUrl https://rdbroker.wvd.microsoft.comAzure Resource Managerにサインインします。
Login-AzAccount複数のサブスクリプションがある場合は、次のコマンドレットを使用してリソースを移行するサブスクリプションを選択します。
Select-AzSubscription -Subscriptionid <subID>選択したサブスクリプションのリソース プロバイダーをAzure portalに登録します。
最後に、プロバイダーを登録する必要があります。 これを行うには、次の 2 つの方法があります。
PowerShell を使用する場合は、次のコマンドレットを実行します。
Register-AzResourceProvider -ProviderNamespace Microsoft.DesktopVirtualizationAzure portalを使用する場合は、Azure portalを開いてサインインし、[サブスクリプション] に移動し、使用するサブスクリプションの名前を選択します。 その後、 リソース プロバイダー>Microsoft.DesktopVirtualization に移動し、[ 再登録] を選択します。 UI にはまだ何も変更されませんが、PowerShell 環境でモジュールを実行する準備が整いました。
Azure Virtual Desktop (クラシック) リソースを Azure Resource Managerに移行する
PowerShell 環境の準備ができたので、移行プロセスを開始できます。
Azure Virtual Desktop (クラシック) リソースを Azure Resource Managerに移行するには、
移行する前に、既存のクラシック リソースを新しい Azure Resource Manager リソースにマップする方法を理解する場合は、次のコマンドレットを実行します。
Get-RdsHostPoolMigrationMappingGet-RdsHostPoolMigrationMapping を使用すると、リソースの移動先をマップする CSV ファイルを作成できます。 たとえば、テナントの名前が "Contoso" で、マッピング ファイルを "contosouser" ファイルに格納する場合は、次のようなコマンドレットを実行します。
Get-RdsHostPoolMigrationMapping -Tenant Contoso -HostPool Office -Location EastUS -OutputFile 'C:\\Users\contosouser\OneDrive - Microsoft\Desktop\mapping.csv'次に、 Start-RdsHostPoolMigration コマンドレットを実行して、1 つのホスト プールを移行するか、テナント内のすべてのホスト プールを移行するかを選択します。
例:
Start-RdsHostPoolMigration -Tenant Contoso -Location WestUSリソースを特定のホスト プールに移行する場合は、ホスト プール名を含めます。 たとえば、"Office" という名前のホスト プールを移動する場合は、次のようなコマンドを実行します。
Start-RdsHostPoolMigration -Tenant Contoso -HostPool Office -CopyUserAssignments $false -Location EastUSワークスペース名を指定しない場合、モジュールはテナント名に基づいて自動的に作成されます。 ただし、特定のワークスペースを使用する場合は、次のようにリソース ID を入力できます。
Start-RdsHostPoolMigration -Tenant Contoso -HostPool Office -CopyUserAssignments -Location EastUS -Workspace <Resource ID of workspacename>特定のワークスペースを使用したいが、そのリソース ID がわからない場合は、次のコマンドレットを実行します。
Get-AzWvdWorkspace -WorkspaceName <workspace> -ResourceGroupName <resource group> |flまた、既存のユーザー割り当てのユーザー割り当てモードを指定する必要もあります。
- [コピー] を使用して、古いアプリケーション グループから Azure Resource Manager アプリケーション グループにすべてのユーザー割り当てをコピーします。 ユーザーは、両方のバージョンのクライアントのフィードを表示できます。
- ユーザーの割り当てを変更しない場合は、 None を使用します。 後で、Azure portal、PowerShell、または API を使用して、アプリケーション グループにユーザーまたはユーザー グループを割り当てることができます。 ユーザーは、Azure Virtual Desktop (クラシック) クライアントを使用してのみフィードを表示できます。
サブスクリプションごとに 2,000 個のユーザー割り当てをコピーすることしかできないため、制限はサブスクリプションに既に割り当てられている割り当ての数によって異なります。 モジュールは、既に割り当て済みの数に基づいて制限を計算します。 コピーする割り当てが十分でない場合は、"ユーザー割り当てをコピーするためのロール割り当てクォータが不十分です" というエラー メッセージが表示されます。 -CopyUserAssignments スイッチを移行せずにコマンドを再実行します。
コマンドを実行した後、モジュールがサービス オブジェクトを作成するまでに最大 15 分かかります。 ユーザー割り当てをコピーまたは移動した場合、モジュールがすべてを設定し終えるのにかかる時間が長くなります。
Start-RdsHostPoolMigration コマンドレットが完了すると、次のものが表示されます。
指定したテナントまたはホスト プールの Azure サービス オブジェクト。
2 つの新しいリソース グループ:
ワークスペースを含む "Tenantname" というリソース グループ。
ホスト プールとデスクトップ アプリケーション グループを含む "Tenantname_originalHostPoolName" というリソース グループ。
新しく作成したアプリケーション グループに発行したすべてのユーザー。
移行プロセス中のユーザーのダウンタイムを回避するために、既存のホスト プールと新しいホスト プールの両方で仮想マシンを使用できます。 これにより、ユーザーは同じユーザー セッションに接続できます。
これらの新しい Azure サービス オブジェクトは Azure Resource Manager オブジェクトであるため、モジュールではロールベースのAccess Control (RBAC) のアクセス許可や診断設定を設定できません。 そのため、これらのオブジェクトの RBAC のアクセス許可と設定を手動で更新する必要があります。
モジュールが最初のユーザー接続を検証したら、必要に応じて、アプリケーション グループを他のユーザーまたはユーザー グループに発行することもできます。
注:
移行後、ユーザーにアクセス許可を割り当てた後でアプリケーション グループを別のリソース グループに移動すると、すべての RBAC ロールが削除されます。 ユーザーの RBAC アクセス許可を再度再割り当てする必要があります。
すべての Azure Virtual Desktop (クラシック) サービス オブジェクトを削除する場合は、 Complete-RdsHostPoolMigration を実行して移行プロセスを完了します。 このコマンドレットは、すべての Azure Virtual Desktop (クラシック) オブジェクトを削除し、新しい Azure オブジェクトのみを残します。 ユーザーは、新しく作成されたアプリケーション グループのフィードをクライアントでのみ表示できます。 このコマンドが完了したら、Azure Virtual Desktop (クラシック) テナントを安全に削除してプロセスを完了できます。
例:
Complete-RdsHostPoolMigration -Tenant Contoso -Location EastUS特定のホスト プールを完了する場合は、コマンドレットにホスト プール名を含めることができます。 たとえば、"Office" という名前のホスト プールを完了する場合は、次のようなコマンドを使用します。
Complete-RdsHostPoolMigration -Tenant Contoso -HostPool Office -Location EastUSこれにより、Azure Virtual Desktop (クラシック) によって作成されたすべてのサービス オブジェクトが削除されます。 新しい Azure オブジェクトのみが残され、ユーザーはクライアントで新しく作成されたアプリケーション グループのフィードのみを表示できます。 移行の完了が完了したら、Azure Virtual Desktop (クラシック) でテナントを明示的に削除する必要があります。
移行に関する考えを変更し、プロセスを元に戻す場合は、 Revert-RdsHostPoolMigration コマンドレットを 実行します。
例:
Revert-RdsHostPoolMigration -Tenant Contoso -Location EastUS特定のホスト プールを元に戻す場合は、コマンドにホスト プール名を含めることができます。 たとえば、"Office" という名前のホスト プールを元に戻す場合は、次のように入力します。
Revert-RdsHostPoolMigration -Tenant Contoso -HostPool Office -Location EastUSこのコマンドレットは、新しく作成されたすべての Azure サービス オブジェクトを削除します。 ユーザーには、クライアント内の Azure Virtual Desktop (クラシック) オブジェクトのフィードのみが表示されます。
ただし、コマンドレットは、モジュールが作成したワークスペース、またはその関連するリソース グループを削除しません。 これらの項目を削除するには、それらの項目を手動で削除する必要があります。
Azure Virtual Desktop (クラシック) サービス オブジェクトをまだ削除せず、移行をテストする場合は、 Set-RdsHostPoolHidden を実行できます。
例:
Set-RdsHostPoolHidden -Tenant Contoso -Hostpool Office -Hidden $true -Location WestUS状態を "true" に設定すると、Azure Virtual Desktop (クラシック) リソースが非表示になります。 "false" に設定すると、リソースがユーザーに表示されます。
-Hostpool パラメーターは省略可能です。 このパラメーターは、非表示にする特定の Azure Virtual Desktop (クラシック) ホスト プールがある場合に使用できます。
このコマンドレットは、Azure Virtual Desktop (クラシック) ユーザー フィードとサービス オブジェクトを削除する代わりに非表示にします。 ただし、これは通常、テストにのみ使用され、完了した移行としてカウントされません。 移行を完了するには、 Complete-RdsHostPoolMigration コマンドを実行する必要があります。 それ以外の場合は、 Revert-RdsHostPoolMigration を実行してデプロイを元に戻します。
自動移行のトラブルシューティング
このセクションでは、移行モジュールで一般的に発生する問題を解決する方法について説明します。
テナントにアクセスできない
まず、次の 2 つのことを試します。
- 管理者アカウントに、テナントにアクセスするために必要なアクセス許可があることを確認します。
- テナント で Get-RdsTenant を実行してみてください。
これら 2 つの機能が機能する場合は、 Set-RdsMigrationContext コマンドレットを実行して、移行の RDS コンテキストと ADAL コンテキストを設定してみてください。
Add-RdsAccount コマンドレットを実行して RDS コンテキストを作成します。
グローバル変数 $rdMgmtContextで RDS コンテキストを検索します。
グローバル変数 $AdalContextで ADAL コンテキストを検索します。
次の形式の変数を使用して Set-RdsMigrationContext を実行します。
Set-RdsMigrationContext -RdsContext <rdscontext> -AdalContext <adalcontext>
次の手順
代わりにデプロイを手動で移行する方法については、「 Azure Virtual Desktop (クラシック) から手動で移行する」を参照してください。
移行したら、チュートリアルを確認して Azure Virtual Desktop のしくみを確認 してください。 高度な管理機能については、「既存の ホスト プールを展開する 」および「 RDP プロパティのカスタマイズ」を参照してください。
サービス オブジェクトの詳細については、Azure Virtual Desktop 環境をチェックします。