【 Remove-VMNetworkAdapterExtendedAcl 】コマンドレット――Hyper-V仮想マシンの仮想ネットワークアダプターの拡張ACLを削除する:Windows PowerShell基本Tips(150)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Remove-VMNetworkAdapterExtendedAcl」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Hyper-V」の仮想マシンに接続された仮想ネットワークアダプターの「拡張アクセス制御リスト」(Extended Access Control List:拡張ACL)を削除する「Remove-VMNetworkAdapterExtendedAcl」コマンドレットです。
目次
Remove-VMNetworkAdapterExtendedAclの概要 | 書式 | オプション
実行例
- 仮想マシンの仮想ネットワークアダプターの拡張ACL設定を削除する
- 複数の仮想ネットワークアダプターを持つ仮想マシンで拡張ACL設定を削除する
- ホストOSが使用する仮想ネットワークアダプターの拡張ACLを削除する
Remove-VMNetworkAdapterExtendedAclコマンドレットとは?
Hyper-Vの仮想スイッチの機能としてのアクセス制御は、「標準ACL」と「拡張ACL」の2種類があることはこれまでも繰り返し説明してきました。今回解説する「Remove-VMNetworkAdapterExtendedAcl」コマンドレットは仮想マシンのネットワークアダプターに設定された拡張ACLを削除するコマンドレットです。
単純に設定された拡張ACLを全て削除するわけではなく、条件に該当した拡張ACLのみを削除できます。
拡張ACLは適用順序が決められているので、適用順序を意識しながら削除しないと、意図しない通信停止を引き起こす可能性があります。本コマンドレットによる削除作業の際は慎重に行ってください。
【注】Remove-VMNetworkAdapterExtendedAclは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットになります。GUI(グラフィカルユーザーインタフェース)の「Windowsの機能の有効化」や「役割と機能の追加」からHyper-Vを有効化するか、PowerShellから「Enable-WindowsOptionalFeature」コマンドレットを使用して有効化します。
Remove-VMNetworkAdapterExtendedAclコマンドレットの主なオプション
| オプション | 意味 |
|---|---|
| -VMName | 仮想マシン名を指定する |
| -VMNetworkAdapter | リソースオブジェクトとして仮想ネットワークアダプターを指定する。省略可能 |
| -VMNetworkAdapterName | 仮想ネットワークアダプター名を指定する。省略可能 |
| -ManagementOS | ホストOS用の仮想ネットワークアダプターの拡張ACLを削除したい場合に指定する。省略可能 |
| -Weight | 拡張ACLの重みを指定する |
| -Direction | 拡張ACLの方向(Inbound/Outbound)を指定する |
| -ComputerName | リモートのHyper-Vホストの仮想ネットワークアダプターの拡張ACLを削除する場合にコンピュータ名を指定する。省略可能 |
仮想マシンの仮想ネットワークアダプターの拡張ACL設定を削除する
Remove-VMNetworkAdapterExtendedAclコマンドレットの必須オプションは、「-VMName」オプションと「-Weight」オプション、それに「-Direction」オプションになります。これらを指定することで、指定した値に一致する拡張ACLが削除されます(画面1)。なお、Remove-VMNetworkAdapterExtendedAclコマンドレットは管理者権限での実行が必要となります。
コマンドレット実行例
Remove-VMNetworkAdapterExtendedAcl -VMName Test-VM01 -Direction Outbound -Weight 20
画面1の実行例では、重み(Weight)「20」の拡張ACLは「Outbound」と「Inbound」それぞれに存在していますが、「-Direction」オプションで「Outbound」を指定しているため、「Outbound」方向の拡張ACLのみが削除されました。
従って、「Inbound」方向の拡張ACLを削除したい場合は、あらためて「-Direction」オプションで「Inbound」を指定してRemove-VMNetworkAdapterExtendedAclコマンドレットを実行する必要があります。
同時に削除したい場合は、本連載147回の「Get-VMNetworkAdapterExtendedAcl」コマンドレットを併用します。
Get-VMNetworkAdapterExtendedAclコマンドレットで拡張ACLを取得する際は、「Where-Object」コマンドレットで重み「20」に一致するという条件で絞り込みます。そこからさらにパイプ(|)でRemove-VMNetworkAdapterExtendedAclコマンドレットにつなぐことで、方向に関係なく、指定した重みの拡張ACLを削除できます(画面2)。
コマンドレット実行例
Get-VMNetworkAdapterExtendedAcl -VMName Test-VM01 | Where-Object {$_.Weight -eq "20"} | Remove-VMNetworkAdapterExtendedAcl
Where-Objectコマンドレットを使用せずに、Get-VMNetworkAdapterExtendedAclコマンドレットを直接パイプ(|)でRemove-VMNetworkAdapterExtendedAclコマンドレットにつなぐことで、設定されている全ての拡張ACLを削除できます(画面3)。
コマンドレット実行例
Get-VMNetworkAdapterExtendedAcl -VMName Test-VM01 | Remove-VMNetworkAdapterExtendedAcl
複数の仮想ネットワークアダプターを持つ仮想マシンで拡張ACL設定を削除する
複数の仮想ネットワークアダプターを持つ仮想マシンで拡張ACLを削除する際には特に注意が必要です。
例えば、複数の仮想ネットワークアダプターで同じ重み、同じ方向で異なる拡張ACLが設定されていた場合、必須オプションだけを指定してRemove-VMNetworkAdapterExtendedAclコマンドレットを実行すると、全ての仮想ネットワークアダプターの拡張ACLが削除されてしまいます(画面4)。
単一の仮想ネットワークアダプターの拡張ACLのみを削除したい場合は、「-VMNetworkAdapterName」オプションを併用して仮想ネットワークアダプターを明示的に指定し、Remove-VMNetworkAdapterExtendedAclコマンドレットを実行します。
コマンドレット実行例
Remove-VMNetworkAdapterExtendedAcl -VMName Test-VM02 -Direction Outbound -Weight 20 -VMNetworkAdapterName "BackendNIC"
ホストOSが使用する仮想ネットワークアダプターの拡張ACLを削除する
ホストOSが使用する仮想ネットワークアダプター、すなわちホストOSが仮想スイッチ経由で通信する際に使用される仮想ネットワークアダプターの拡張ACLを削除する場合は「-ManagementOS」オプションを使用します(画面6)。
コマンドレット実行例
Remove-VMNetworkAdapterExtendedAcl -ManagementOS -Direction Inbound -Weight 20
筆者紹介
後藤 諭史(ごとう さとし)
株式会社ネットワールド所属。Microsoft MVP for Cloud and Datacenter Management(2012-2026)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.





