次の方法で共有


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 番目のコマンドは、ForEach ループの 2 番目の を使用して、$VirtDiskDrives配列から LOBData という文字列を含む名前を持つすべての仮想ディスク ドライブ オブジェクトを選択し、これらのオブジェクトを現在のコマンドレットに渡します。 このコマンドレットは、VMM からオブジェクトを削除します。

パラメーター

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