Home > Windows にまつわる e.t.c.

Windows Server 2016 Technical Preview 5 の New-VMSwitch(仕様変更?)


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"

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.