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_IfGet-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 仮想ディスク ドライブ オブジェクトが必要です。