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 番目のコマンドは、2 番目 の ForEach ループを使用して、$VirtDiskDrives配列から文字列 LOBData を含む名前を持つすべての仮想ディスク ドライブ オブジェクトを選択し、これらのオブジェクトを現在のコマンドレットに渡します。 このコマンドレットは、VMM からオブジェクトを削除します。
パラメーター
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
操作を強制的に完了させます。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobGroup
同じジョブ グループ識別子を含む最後のコマンドが実行される直前に、セットとして実行される一連のコマンドの識別子を指定します。
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobVariable
ジョブの進行状況を追跡して格納する変数を指定します。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUser
ユーザー名を指定します。 このコマンドレットは、このパラメーターで指定されたユーザーの代わりに動作します。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUserRole
ユーザー ロールを指定します。 ユーザー ロールを取得するには、 Get-SCUserRole コマンドレットを 使用します。 このコマンドレットは、このパラメーターが指定するユーザー ロールの代わりに動作します。
Type: | UserRole |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PROTipID
このアクションをトリガーしたパフォーマンスとリソース最適化のヒント (PRO ヒント) の ID を指定します。 このパラメーターを使用すると、PRO のヒントを監査できます。
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAsynchronously
コントロールがコマンド シェルに直ちに戻るように、ジョブが非同期的に実行されることを示します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipDeleteVHD
仮想ディスク ドライブを削除するときに、このコマンドレットが VHD ファイルを実行しないことを示します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VirtualDiskDrive
仮想ディスク ドライブ オブジェクトを指定します。 仮想ハード ディスクまたはパススルー ディスクのいずれかを仮想ディスク ドライブ オブジェクトにアタッチできます。
Type: | VirtualDiskDrive |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
メモ
- Get-SCVirtualDiskDrive コマンドレットを使用して取得できる VMM 仮想ディスク ドライブ オブジェクトが必要です。