SCVMM 2016 UR5 で利用可能なコマンドレット (Remove-SCVirtualDiskDrive) について

スポンサーリンク
Microsoft Store (マイクロソフトストア)

System Center 2016 – Virtual Machine Manager (SCVMM 2016) に触れる機会が多くなり、Virtual Machine Manager Command Shell を使った設定や、情報取得、および管理することが増えてきたので、備忘録として各コマンドレットの概要を日本語化 (意訳) しました。

ここでは Remove-SCVirtualDiskDrive コマンドレットのヘルプ情報について、SCVMM2016 UR5 の Virtual Machine Manager Command Shell 上で「Remove-SCVirtualDiskDrive」コマンドレットの -Full オプションを用いて実行した結果を元に記載しています。
※SCVMM 2016 UR5 で利用可能なコマンドレット一覧については、「System Center 2016 – Virtual Machine Manager で利用できるコマンドレットについて」を参照。

Remove-SCVirtualDiskDrive コマンドレット

名前

Remove-SCVirtualDiskDrive

概要

仮想マシンから、もしくは仮想マシン テンプレートから仮想ディスク ドライブを削除します。

構文

Remove-SCVirtualDiskDrive
 [-VirtualDiskDrive] <VirtualDiskDrive>
 [-Confirm]
 [-Force]
 [-JobGroup <Guid>]
 [-JobVariable <String>]
 [-OnBehalfOfUser <String>]
 [-OnBehalfOfUserRole <UserRole>]
 [-PROTipID <Guid>]
 [-RunAsynchronously]
 [-SkipDeleteVHD]
 [-WhatIf]
 [<CommonParameters>]

説明

Remove-SCVirtualDiskDrive コマンドレットは、仮想マシンから、もしくは Virtual Machine Manager (VMM) 環境の仮想マシン テンプレートから仮想ディスク ドライブ オブジェクトを削除します。

パラメーター

-Confirm [<SwitchParameter>]

コマンドレットの実行前に確認のプロンプトを表示します。

必須false
位置named
既定値False
パイプライン入力を許可するFalse
ワイルドカード文字を許可するfalse

-Force [<SwitchParameter>]

強制的に操作を実行する場合に指定します。

必須false
位置named
既定値False
パイプライン入力を許可するFalse
ワイルドカード文字を許可するfalse

-JobGroup <Guid>

同じジョブ グループ識別子を含む最後のコマンドが実行される直前に、一連のコマンドを実行する一連のコマンドの識別子を指定します。

必須false
位置named
既定値None
パイプライン入力を許可するFalse
ワイルドカード文字を許可するfalse

-JobVariable <String>

ジョブ進行状況を追跡、格納する変数を指定します。

必須false
位置named
既定値None
パイプライン入力を許可するFalse
ワイルドカード文字を許可するfalse

-OnBehalfOfUser <String>

ユーザー名を指定します。このコマンドレットは、このパラメーターが指定するユーザーの代わりに操作します。

必須false
位置named
既定値None
パイプライン入力を許可するFalse
ワイルドカード文字を許可するfalse

-OnBehalfOfUserRole <UserRole>

ユーザー ロールを指定します。ユーザー ロールを取得するには、Get-SCUserRole コマンドレットを用います。このコマンドレットは、このパラメーターで指定するユーザー ロールの代わりに操作します。

必須false
位置named
既定値None
パイプライン入力を許可するFalse
ワイルドカード文字を許可するfalse

-PROTipID <Guid>

このアクションにトリガーされるパフォーマンスとリソースの最適化のヒント (PRO ヒント) を指定します。このパラメーターは、PRO ヒントを監査することができます。

必須false
位置named
既定値None
パイプライン入力を許可するFalse
ワイルドカード文字を許可するfalse

-RunAsynchronously [<SwitchParameter>]

ジョブが非同期で実行、制御がすぐにコマンド シェルに戻されるかどうかを指定します。

必須false
位置named
既定値False
パイプライン入力を許可するFalse
ワイルドカード文字を許可するfalse

-SkipDeleteVHD [<SwitchParameter>]

仮想ディスク ドライブを削除している間、このコマンドレットが VHD ファイルを認識しない場合に指定します。

必須false
位置named
既定値False
パイプライン入力を許可するFalse
ワイルドカード文字を許可するfalse

-VirtualDiskDrive <VirtualDiskDrive>

仮想ハード ディスク ドライブ オブジェクトを指定します。仮想ディスク ドライブ オブジェクトに仮想ハード ディスク、もしくはパススルー ディスクを接続可能です。

必須true
位置0
既定値None
パイプライン入力を許可するTrue (ByValue)
ワイルドカード文字を許可するfalse

-WhatIf [<SwitchParameter>]

コマンドレットを実行する場合の挙動について表示します。コマンドレットは、実際には実行されません。

必須false
位置named
既定値False
パイプライン入力を許可するFalse
ワイルドカード文字を許可するfalse

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: Verbose、Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、OutBuffer, PipelineVariable、および OutVariable。詳細については、about_CommonParameters を参照してください。

入力

出力

メモ

Get-SCVirtualDiskDrive コマンドレットを用いて取得可能な VMM 仮想 ディスク ドライブ オブジェクトが必要となります。

例 1 : 仮想マシンから仮想ハード ディスク ドライブを削除する

コマンド
$VM = Get-SCVirtualMachine | Where-Object { $_.VMHost.Name -Eq "VMHost01.Contoso.com" -And $_.Name -Eq "VM01" }
$VirtDiskDrive = @(Get-SCVirtualDiskDrive -VM $VM)
If($VirtDiskDrive.Count -Gt 1){Remove-SCVirtualDiskDrive -VirtualDiskDrive $VirtDiskDrive[1]}
コマンドの説明

最初のコマンドは、Get-SCVirtualMachine コマンドレットを用いて、仮想マシン オブジェクト “VM01” を “VMHost01.Contoso.com” に展開します。このコマンドは、そのオブジェクトを $VM 変数に格納します。

2 番目のコマンドは、VM01 上のすべての仮想ディスク ドライブ オブジェクトを取得し、取得したオブジェクトを $VirtDiskDrive に格納します。@ 記号と括弧を使用すると、コマンドが単一のオブジェクト、もしくは $Null 値を返す場合でも、コマンドが結果を配列に格納するようになります。

最後のコマンドは、仮想マシンに関連付けられている仮想ディスク ドライブ数を返します。複数の仮想ディスクが存在する場合、コマンドは [1] で指定された 2 番目の仮想ディスク ドライブを仮想マシンから削除します。

例 2 : 仮想マシンに接続されているすべてのパススルー ディスクを削除する

コマンド
$VM = Get-SCVirtualMachine | Where-Object {$_.Name -Eq "VM02"}
$VirtDiskDrives = @(Get-SCVirtualDiskDrive -VM $VM | Where-Object {$_.IsVHD -Eq $False})
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 : Name による仮想ディスク ドライブを削除する

コマンド
$VM = @(Get-SCVirtualMachine | Where-Object {$_.Name -Match "WebSrvLOB"})
ForEach-Object ($VM in $VMs){$VirtDiskDrives = Get-SCVirtualDiskDrive -VM $VM 
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 からオブジェクトを削除します。

関連するリンク

  • Compress-SCVirtualDiskDrive
  • Convert-SCVirtualDiskDrive
  • Expand-SCVirtualDiskDrive
  • Get-SCVirtualDiskDrive
  • Get-SCVirtualMachine
  • New-SCVirtualDiskDrive
  • Set-SCVirtualDiskDrive
  • Test-SCVirtualDiskDrive

参考