Move-SCVirtualMachine
VMM ライブラリに格納されているバーチャル マシン、またはホストにデプロイされたバーチャル マシンを、ホスト上の新しい場所に移動します。
構文
Default (既定)
Move-SCVirtualMachine
[-VM] <VM>
[-VMHost <Host>]
[-ReplicationGroup <ReplicationGroup>]
[-BlockLiveMigrationIfHostBusy]
[-UseDiffDiskOptimization]
[-StartVMOnTarget]
[-DiscardSavedState]
[-UseLAN]
[-UseCluster]
[-HighlyAvailable <Boolean>]
[-Path <String>]
[-JobGroup <Guid>]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
説明
Move-SCVirtualMachine コマンドレットは、Virtual Machine Manager (VMM) ライブラリに格納されている仮想マシン、またはホストにデプロイされた仮想マシンをホスト上の新しい場所に移動します。
System Center 2019 以降では、Windows Server 2016 に含まれる新しい移行機能を利用できます。 これらの機能には、2 台のスタンドアロン コンピューター間での仮想マシンのライブ マイグレーションや、スタンドアロン コンピューターとクラスター ノード間のライブ マイグレーションが含まれます。 さらに、複数の同時ライブ マイグレーションがサポートされています。 System Center で仮想マシンを移行する方法の詳細については、TechNet ライブラリの「VMMhttps://technet.microsoft.com/en-us/library/mt710321(v=sc.16).aspx (https://technet.microsoft.com/en-us/library/mt710321(v=sc.16).aspx) での仮想マシンと記憶域の移行」を参照してください。
Windows Server 2008 R2 を実行しているホストにデプロイされた仮想マシンを Windows Server 2016 を実行しているホストに移動した場合、仮想マシンを Windows Server 2008 R2 を実行しているホストに戻すことはできません。
VMM には、実行中のバーチャル マシンの 1 つ以上のバーチャル ハード ディスクを別の場所に移動できるストレージ移行機能が含まれています。 現在のコマンドレットと Move-SCVirtualHardDisk コマンドレットを使用して、Windows ベースの仮想ハード ディスク (.vhd) ファイルと VMware ベースの仮想ハード ディスク (.vmdk) ファイルを別のホスト上の場所に移動できます。 また、Move-SCVirtualHardDisk コマンドレットを使用して、.vhd ファイルまたは .vmdk ファイルを同じホスト上の 1 つの場所から別の場所に移動することもできます。
仮想マシンをホストから移動してライブラリに格納するには、Save-SCVirtualMachine コマンドレットを使用する必要があります。
VMM では、次の転送方法のいずれかを、VMM が使用しようとする順序でリストされています。
- Hyper-V ライブ マイグレーション。 仮想マシンが実行中で、Windows Server 2008 R2 または Windows Server 2016 ホスト クラスターのノードである Hyper-V ホストに展開されている場合、既定では、VMM は Hyper-V ライブ マイグレーションを使用して、サービスを中断することなく仮想マシンをクラスター内の別のノードに移動します。 実行中の仮想マシンを移動しても、ネットワークから切断されるわけではありません。 仮想マシンは、高可用性属性を保持します。 パスを指定する必要はありません。 複数の仮想マシンのライブ マイグレーションを同時に開始できます。
- Windows Server 2008 クラスターの移行。 System Center は、Windows 2008 クラスタ移行 (クイック移行と呼ばれることもあります) を引き続きサポートします。 Cluster Migration は、実行中の仮想マシンをホスト クラスターの Hyper-V ノードに移動します。 また、停止状態または保存された状態にあり、クラスター内の別のノードにデプロイされている仮想マシンを移動することもできます。 クラスタ移行を使用して、仮想マシンが次のいずれかのノードにデプロイされている場合、停止状態または保存された状態の仮想マシンを移動できます。
----Windows Server 2008 クラスター内のノード ----Windows Server 2008 R2 クラスター内のノード
パスを指定する必要はありません。 Windows Server 2008 クラスタの移行により、移行中に仮想マシンが保存された状態になります。 この操作により、その仮想マシンのすべてのユーザーに対するサービスが一時的に失われます。
- VMware のライブ マイグレーション。 VMware ESX ホストに展開されたバーチャル マシンが共有ストレージを使用している場合、VMM は VMware ライブ マイグレーション機能を使用してバーチャル マシンを新しいホストに移動できます。 この機能は VMware VMotion と呼ばれます。 パスを指定する必要はありません。 現在のコマンドレットで VMware VMotion を使用して仮想マシンを 1 つの ESX ホストから別の ESX ホストに移動できるのは、両方の ESX ホストが vCenter Server 上の同じデータセンター コンテナー内にある場合のみです。
- Citrix XenServer XenMotionです。 Citrix XenServer ホストに展開されたバーチャル マシンが共有ストレージを使用し、同じリソース プールの一部である場合、VMM は XenServer ライブ マイグレーション機能を使用して、バーチャル マシンを別の XenServer ホストに移動できます。 ライブマイグレーション機能は、Citrix XenMotionと呼ばれます。
- SAN の移行 (ファイバー・チャネル、iSCSI、または NPIV)。 仮想マシンが SAN に接続されているホスト上にあり、仮想マシンが SAN LUN 上にある場合、VMM は、そのホストが同じ SAN にアクセスできる場合、その仮想マシンを別のホストに移動できます。 SAN 転送では、ターゲット LUN はソース ホストから宛先ホストにリダイレクトされます。 この移行では、ファイルは移動されません。 SAN 転送は、ローカル エリア ネットワーク (LAN) を介して仮想マシン ファイルを 1 つのホストから別のホストに移動するよりもはるかに高速です。 VMM は、クラスターへの仮想マシンの SAN 移行とクラスターからの仮想マシンの移行をサポートします。 パスを指定する必要があります。 NPIV をサポートするホスト バス アダプター (HBA) が使用可能な場合、VMM は NPIV SAN 転送を使用できます。
- ネットワーク移行。 より高速な方法がない場合、VMM はネットワーク転送を使用して、2 つのホストを接続する LAN 経由で 1 つのホストから別のホストにバーチャル マシン ファイルを移動します。 SAN 転送タイプが使用可能な場合でも、この転送タイプを使用することを決定できます。 パスを指定する必要があります。
複数の転送の種類が使用可能な場合、このコマンドレットは、使用可能な最も高速な転送の種類を自動的に使用して仮想マシンを移動します。 移動するバーチャル マシンに適していない、または使用できない場合、VMM はリスト内の次の方法を使用しようとします。 ネットワーク転送の使用を強制する場合は、 UseLAN パラメーターを指定します。
例
例 1: 仮想マシンをライブラリからホストに移動する
PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.Name -Eq "VM01" -And $_.LibraryServer -Eq "LibServer01.Contoso.com" }
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost01.Contoso.com"
PS C:\> Move-SCVirtualMachine -VMHost $VMHost -VM $VM -Path "D:\VirtualMachinePath"
最初のコマンド コマンドは、VM01 という名前の仮想マシン オブジェクトを取得し、そのオブジェクトを $VM 変数に格納します。 この例では、VMM ライブラリに格納されている仮想マシンは、ライブラリ サーバー上の LibServer01 という名前です。 この例では、VM01 という名前の仮想マシンが現在 1 つだけ LibServer01 に保存されていることを前提としています。
2 番目のコマンドは、VMHost01 という名前のホスト オブジェクトを取得し、そのオブジェクトを $VMHost 変数に格納します。
最後のコマンドは、仮想マシンをライブラリ内の現在の場所から、$VMHostに格納されているホスト上の D:\VirtualMachinePath の場所に移動します。 このコマンドでは、使用可能な最速の転送タイプが自動的に使用されます。 コマンドが終了すると、移動された仮想マシンに関する情報が返されます。
例 2: 仮想マシンをライブラリからホストに非同期的に移動する
PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.Name -Eq "VM01" -And $_.LibraryServer -Eq "LibServer01.Contoso.com" }
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost02.Contoso.com"
PS C:\> Move-SCVirtualMachine -VMHost $VMHost -VM $VM -Path "D:\VirtualMachinePath" -RunAsynchronously -JobVariable "MoveVMJob"
PS C:\> $MoveVMJob
この例の最初の 2 つのコマンドは、仮想マシン ホストの名前を除いて、最初の例のコマンドと同じです。
3 番目のコマンドは、仮想マシンを現在の場所から VMHost02 の D:\VirtualMachinePath に移動します。 このコマンドは、 RunAsynchronously パラメーターを指定して、制御をすぐにコマンド シェルに戻します。 このコマンドは、ジョブの進行状況を追跡するための JobVariable パラメータを指定します。 このコマンドは、ジョブの進行状況のレコードを $MoveVMJob 変数に格納します。 JobVariable パラメーターでは、変数を作成するためにドル記号 ($) を指定しません。
最後のコマンドは、移動ジョブの説明、その状況、進行状況、およびその他の情報を含む $MoveVMJob の内容を表示します。
例 3: LAN 転送を強制して、ライブラリからホストに仮想マシンを移動する
PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.Name -Eq "VM03" -And $_.LibraryServer -Eq "LibServer01.Contoso.com" }
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VMHost03.Contoso.com"
PS C:\> Move-SCVirtualMachine -VMHost $VMHost -VM $VM -Path "D:\VirtualMachinePath" -UseLAN
最初のコマンドは、ライブラリ サーバー LibServer01 上の VM03 という名前の仮想マシン オブジェクトを取得し、そのオブジェクトを $VM 変数に格納します。
2 番目のコマンドは、VMHost03 という名前のホスト オブジェクトを取得し、そのオブジェクトを $VMHost 変数に格納します。
最後のコマンドは、仮想マシン VM03 をライブラリ内の現在の場所から VMHost03 の D:\VirtualMachinePath に移動します。 このコマンドは、 UseLAN パラメーターを指定して、より高速な転送メカニズムが使用可能な場合でも、転送がネットワーク転送を使用することを指定します。
例 4: VMware VMotion を使用してホスト間で仮想マシンを移動する
PS C:\> $VM = Get-SCVirtualMachine -Name "VM04" | Where-Object {$_.VMHost.Name -Eq "ESXHost01"}
PS C:\> $VMHost = Get-SCVMHost | Where-Object {$_.Name -Eq "ESXHost02"}
PS C:\> Move-SCVirtualMachine -VM $VM -VMHost $VMHost -Path "[Storage2]"
最初のコマンドは、ESXHost01 で VM04 という名前の仮想マシン オブジェクトを取得し、そのオブジェクトを $VM 変数に格納します。
2 番目のコマンドは、ESXHost02 という名前の ESX ホスト オブジェクトを取得し、そのオブジェクトを $VMHost 変数に格納します。
最後のコマンドは、VMware VMotion を使用して、仮想マシンを現在の ESX ホストから別の ESX ホストに移動します。
注: Move-SCVirtualMachine コマンドレットは、両方の ESX サーバーが vCenter サーバー上の同じデータセンター コンテナー内にある場合にのみ、VMware VMotion 機能を使用して仮想マシンを 1 つの ESX ホストから別の ESX ホストに移動できます。
例 5: Hyper-V ライブマイグレーションを使用して、ホストクラスター内のノード間で高可用性仮想マシンを移動する
PS C:\> $VM = Get-SCVirtualMachine -Name "HAVM05" | Where-Object {$_.VMHost.Name -Eq "VMHVHostNode05A.Contoso.com"}
PS C:\> $VMHost = Get-SCVMHost | Where-Object {$_.Name -Eq "VMHVHostNode05B.Contoso.com"}
PS C:\> Move-SCVirtualMachine -VM $VM -VMHost $VMHost -Path "D:\VMs\"
最初のコマンドは、VMHVHostNode05A で HAVM05 という名前の仮想マシン・オブジェクトを取得し、そのオブジェクトを $VM 変数に格納します。 この例では、HAVM05 は高可用性仮想マシンです。 VMHVHostNode05A と VMHVHostNode05B は、Hyper-V ホスト クラスター内のノードです。
2 番目のコマンドは、VMHVHostNode05B という名前のホスト オブジェクトを取得し、そのオブジェクトを $VMHost 変数に格納します。
最後のコマンドは、ライブ マイグレーションを使用して、仮想マシンを VMHVHostNode05A から VMHVHostNode05B に移動します。
例 6: Hyper-V ホスト上の実行中の仮想マシンを、同じホスト上の新しい場所に移動する
PS C:\> $MoveVhdPath = "E:\VHDs"
PS C:\> $VM = Get-SCVirtualMachine "VM06"
PS C:\> $VMHost = Get-SCVMHost "VMHost06"
PS C:\> $HostPath = "E:\VirtualMachinePath"
PS C:\> $JobGroupID = [System.Guid]::NewGuid().ToString()
PS C:\> Move-SCVirtualHardDisk -IDE -Bus 1 -Lun 1 -Path $MoveVhdPath -JobGroup $JobGroupID
PS C:\> Move-SCVirtualMachine -VM $VM -VMHost $VMHost -Path $HostPath -JobGroup $JobGroupID
最初のコマンドは、文字列 E:\VHDs を $MoveVhdPath に格納します。 これは、仮想マシンの仮想ハードディスクを移動するパスです。
2 番目のコマンドは、VM06 という名前の仮想マシン オブジェクトを取得し、そのオブジェクトを $VM 変数に格納します。
3 番目のコマンドは、VMHost06 という名前のホスト オブジェクトを取得し、そのオブジェクトを $VMHost 変数に格納します。 この例では、VMHost06 は Hyper-V ホストです。
4 番目のコマンドは、文字列 E:\VirtualMachinePath を $HostPath 変数に格納します。 これはVM06を移動するパスです。
5 番目のコマンドは、新しい GUID 文字列を作成し、$JobGroupID 変数に格納します。 この GUID は、この識別子を含む後続のコマンドを 1 つのジョブ グループにグループ化する識別子として機能するジョブ グループ ID です。
6 番目のコマンドは、$MoveVhdPath に格納されている値の仮想ハード ディスク パスを設定し、仮想ハード ディスクを仮想マシン上の仮想 IDE コントローラーのバス 1 と LUN 1 に接続します。 このコマンドは、Move-SCVirtualMachine がジョブ グループ リスト内のコマンドの実行をトリガーするまで実際には実行されないように、JobGroup パラメーターを指定します。
最後のコマンドは、VM06 を同じホストの E:\VirtualMachinePath に移動します。 コマンドレットは、$JobGroupIDの一部として Move-SCVirtualHardDisk 実行されます。 このコマンドは、仮想マシンの仮想ハード ディスクを E:\VHDs に移動します。
パラメーター
-BlockLiveMigrationIfHostBusy
移行元ホストまたは移行先ホストが既に別のライブ マイグレーションに参加しているために移行が失敗した場合に、コマンドレットが Hyper-V ライブ マイグレーションの再試行をブロックすることを示します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | BlockLMIfHostBusy |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-DiscardSavedState
このコマンドレットが、仮想マシンまたはサービスに関連付けられている保存された状態を削除することを示します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-HighlyAvailable
ホスト クラスタの一部である Hyper-V ホストに仮想マシンを配置するかどうかを指定します。
パラメーターのプロパティ
| 型: | Boolean |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-JobGroup
同じジョブ・グループ識別子を含む最終コマンドが実行される直前にセットとして実行される一連のコマンドの識別子を指定します。
パラメーターのプロパティ
| 型: | Guid |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-JobVariable
ジョブの進行状況を表す変数の名前を指定します。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-OnBehalfOfUser
ユーザー名を指定します。 このコマンドレットは、このパラメーターで指定されているユーザーに代わって動作します。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-OnBehalfOfUserRole
ユーザー ロールを指定します。 ユーザー ロールを取得するには、 Get-SCUserRole コマンドレットを使用します。 このコマンドレットは、このパラメーターで指定されているユーザー ロールに代わって動作します。
パラメーターのプロパティ
| 型: | UserRole |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Path
移動した仮想マシンのパスを指定します。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-PROTipID
このアクションをトリガーしたパフォーマンスとリソースの最適化のヒント (PRO ヒント) の ID を指定します。 このパラメーターを使用すると、PRO のヒントを監査できます。
パラメーターのプロパティ
| 型: | Guid |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ReplicationGroup
レプリケーション グループを指定します。
パラメーターのプロパティ
| 型: | ReplicationGroup |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-RunAsynchronously
コントロールがコマンド シェルにすぐに戻るように、ジョブが非同期的に実行されることを示します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-StartVMOnTarget
このコマンドレットによって仮想マシンが移動先ホストに移動されるとすぐに仮想マシンが起動することを指定します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-UseCluster
このコマンドレットは、クラスターが Hyper-V ライブ マイグレーションをサポートしている場合でも、保存された状態の仮想マシンをホストに転送するためにクラスター移行を使用することを示します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-UseDiffDiskOptimization
コマンドレットが差分ディスク最適化を使用することを示します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-UseLAN
このコマンドレットが、より高速な転送メカニズムが使用可能な場合でも、LAN 経由の転送を使用することを示します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-VM
仮想マシン オブジェクトを指定します。
パラメーターのプロパティ
| 型: | VM |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-VMHost
仮想マシンのホストオブジェクトを指定します。 VMM は、Hyper-V ホスト、VMware ESX ホスト、および Citrix XenServer ホストをサポートします。
各種類のホストの詳細については、 Add-SCVMHost コマンドレットを参照してください。
パラメーターのプロパティ
| 型: | Host |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
出力
VirtualMachine
このコマンドレットは、 VirtualMachine オブジェクトを返します。
関連リンク
- Add-SCVMHost
- Get-SCUserRole
- Get-SCVirtualMachine
- Get-SCVMHost
- Move-SCVirtualHardDisk
- New-SCVirtualMachine
- Read-SCVirtualMachine
- Register-SCVirtualMachine
- Repair-SCVirtualMachine
- Reset-SCVirtualMachine
- Resume-SCVirtualMachine
- Save-SCVirtualMachine
- Set-SCVirtualMachine
- Start-SCVirtualMachine
- Suspend-SCVirtualMachine
- Stop-SCVirtualMachine