Remove-SCVirtualDiskDrive
仮想マシンまたは仮想マシン テンプレートから仮想ディスク ドライブを削除します。
構文
Remove-SCVirtualDiskDrive
[-VirtualDiskDrive] <VirtualDiskDrive>
[-SkipDeleteVHD]
[-JobGroup <Guid>]
[-Force]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-WhatIf]
[-Confirm]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
説明
Remove-SCVirtualDiskDrive コマンドレットは、仮想マシンまたは仮想マシン マネージャー (VMM) 環境の仮想マシン テンプレートから仮想ディスク ドライブ オブジェクトを削除します。
例
例 1: 仮想マシンから仮想ディスク ドライブを削除する
PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.VMHost.Name -Eq "VMHost01.Contoso.com" -And $_.Name -Eq "VM01" }
PS C:\> $VirtDiskDrive = @(Get-SCVirtualDiskDrive -VM $VM)
PS C:\> If($VirtDiskDrive.Count -Gt 1){Remove-SCVirtualDiskDrive -VirtualDiskDrive $VirtDiskDrive[1]}
最初のコマンドは、Get-SCVirtualMachine コマンドレットを使用して、VMHost01 にデプロイされた VM01 という名前の仮想マシン オブジェクトを取得します。 このコマンドは、そのオブジェクトを $VM 変数に格納します。
2 番目のコマンドは、VM01 上のすべての仮想ディスク ドライブ オブジェクトを取得し、取得したオブジェクトを$VirtDiskDriveに格納します。 @ 記号とかっこを使用すると、コマンドが単一のオブジェクトまたは$Null値を返す場合でも、コマンドによって結果が配列に格納されます。
最後のコマンドは、仮想マシンに関連付けられている仮想ディスク ドライブの数を返し、複数存在する場合は、[1] で指定された 2 番目の仮想ディスク ドライブを仮想マシンから削除します。
例 2: 仮想マシンに接続されているすべてのパススルー ディスクを削除する
PS C:\> $VM = Get-SCVirtualMachine | Where-Object {$_.Name -Eq "VM02"}
PS C:\> $VirtDiskDrives = @(Get-SCVirtualDiskDrive -VM $VM | Where-Object {$_.IsVHD -Eq $False})
PS C:\> If($VirtDiskDrives.Count -Gt 0){ForEach($VirtDiskDrive in $VirtDiskDrives){Remove-SCVirtualDiskDrive -Force -VirtualDiskDrive $VirtDiskDrive}}
最初のコマンドは、VM02 という名前の仮想マシン オブジェクトを取得し、そのオブジェクトを $VM 変数に格納します。
2 番目のコマンドは、仮想ハード ディスクではない VM02 に接続されているすべての仮想ディスク ドライブ オブジェクトを取得します。 このコマンドは、パススルー ディスクを表すオブジェクトのみを取得します。 このコマンドは、パススルー ディスク オブジェクトを $VDDs オブジェクト配列に格納します。
最後のコマンドでは、If ステートメントを使用して、少なくとも 1 つのパススルー仮想ディスク ドライブが存在するかどうかを判断します。
結果が 1 つ以上の場合、コマンドは ForEach ステートメントを使用して、各仮想ディスク ドライブをオブジェクト配列から削除します。
詳細については、「Get-Help about_If
と Get-Help about_Foreach
」と入力します。
最後のコマンドは、Force パラメーターを指定します。 そのため、コマンドは、他の VMM オブジェクトがその仮想ディスク ドライブに依存している場合でも、その仮想マシンから各仮想ディスク ドライブを削除します。
例 3: 名前で仮想ディスク ドライブを削除する
PS C:\> $VM = @(Get-SCVirtualMachine | Where-Object {$_.Name -Match "WebSrvLOB"})
PS C:\> ForEach-Object ($VM in $VMs){$VirtDiskDrives = Get-SCVirtualDiskDrive -VM $VM
PS C:\> ForEach-Object ($VirtDiskDrive in $VirtDiskDrives){If($VirtDiskDrive.Name -Match "LOBData"){Remove-SCVirtualDiskDrive -VirtualDiskDrive $VirtDiskDrive}}}
最初のコマンドは、名前が文字列 WebSrvLOB と一致するすべての仮想マシン オブジェクトを取得し、それらのオブジェクトを $VM 配列に格納します。
次の 2 つのコマンドでは、ForEach-Object コマンドレットを使用して、$VMに格納されている仮想マシンを反復処理して、各仮想マシンからすべての仮想ディスク ドライブ オブジェクトを取得します。 2 番目のコマンドは、仮想ディスク ドライブ オブジェクトを $VirtDiskDrives オブジェクト配列に格納します。
3 番目のコマンドは、ForEach ループの 2 番目の
パラメーター
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
操作を強制的に終了します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-JobGroup
同じジョブ グループ識別子を含む最後のコマンドが実行される直前に、セットとして実行される一連のコマンドの識別子を指定します。
型: | Guid |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-JobVariable
ジョブの進行状況を追跡して格納する変数を指定します。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-OnBehalfOfUser
ユーザー名を指定します。 このコマンドレットは、このパラメーターが指定したユーザーに代わって動作します。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-OnBehalfOfUserRole
ユーザー ロールを指定します。 ユーザー ロールを取得するには、Get-SCUserRole コマンドレットを使用します。 このコマンドレットは、このパラメーターが指定するユーザー ロールに代わって動作します。
型: | UserRole |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-PROTipID
このアクションをトリガーしたパフォーマンスとリソースの最適化のヒント (PRO ヒント) の ID を指定します。 このパラメーターを使用すると、PRO のヒントを監査できます。
型: | Guid |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-RunAsynchronously
コントロールがコマンド シェルにすぐに戻るように、ジョブが非同期的に実行されることを示します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SkipDeleteVHD
仮想ディスク ドライブを削除するときに、このコマンドレットが VHD ファイルを実行しないことを示します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-VirtualDiskDrive
仮想ディスク ドライブ オブジェクトを指定します。 仮想ハード ディスクまたはパススルー ディスクを仮想ディスク ドライブ オブジェクトに接続できます。
型: | VirtualDiskDrive |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
メモ
- Get-SCVirtualDiskDrive コマンドレットを使用して取得できる VMM 仮想ディスク ドライブ オブジェクトが必要です。