New-VMSwitch で NIC を指定する場合、Get-NetAdapter をリダイレクトできていたのですが、TP5 ではリダイレクトするとエラーになって NIC 指定ができなくなりました。
一時的な問題なのか、恒久的仕様変更なのかは現状不明ですが、PowerShell で TP5 の仮想スイッチを作るにはひと手間かかるようになっています。
PS C:\> Get-NetAdapter Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- Test Intel(R) Ethernet Server Adapter I...#4 12 Disconnected 00-1B-21-A6-6D-FF 0 bps DMZ Intel(R) Ethernet Server Adapter I...#2 11 Up 00-1B-21-A6-6D-FE 1 Gbps LAN Intel(R) Ethernet Server Adapter I34... 9 Up 00-1B-21-A6-6D-FD 1 Gbps host Intel(R) Ethernet Server Adapter I...#3 4 Up 00-1B-21-A6-6D-FC 1 Gbps PS C:\> Get-NetAdapter -ifIndex 12 | New-VMSwitch -AllowManagementOS:$False -Name "Test-Switch" New-VMSwitch : パラメーター 'ComputerName の引数を確認できません。引数が null または空です。null または空でない引数を指 定して、コマンドを再度実行してください。 発生場所 行:1 文字:30 + ... fIndex 12 | New-VMSwitch -AllowManagementOS:$False -Name "Test-Switch ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (MSFT_NetAdapter...stp5.vwnet.jp"):PSObject) [New-VMSwitch]、ParameterBindin gValidationException + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.HyperV.PowerShell.Commands.NewVMSwitch |
TP5 で NIC 指定するには、Get-NetAdapter で得られた Name を New-VMSwitch の
-NetAdapterName に渡します
(PowerShell プロンプトで日本語使いたいないので ifIndex 指定しています)
# ターゲット NIC $TergetNIC = Get-NetAdapter -ifIndex 12 # ターゲット NIC の名前 $TergetNICName = $TergetNIC.Name # NIC 名を指定して 仮想 SW 作成 New-VMSwitch -NetAdapterName $TergetNICName -AllowManagementOS:$False -Name "Test-Switch" |
ワンライナーで書くとこんな感じです
New-VMSwitch -NetAdapterName (Get-NetAdapter -ifIndex 12).Name -AllowManagementOS:$False -Name "Test-Switch"
Copyright © MURA All rights reserved.