2019年3月6日水曜日

【PowerShell】Windowsのネットワークの設定を行う

Windows Serverをインストールした際に、避けて通れないネットワーク設定であるが、GUIでポチポチ設定するのも面倒なので、PowerShellを使ってコマンドで実施する方法を調べてみた。

NICのIPv6をOFFにする

WindowsのNICはデフォルトでIPv6が利用できるように設定されているが、IPv6は利用する機会はほとんどないので無効化しておく。

まずは、現在のNICの設定状態を確認してみよう。Get-NetAdapterBindingコマンドレットで確認できる。ここで表示される値は、GUIでいうとネットワークアダプターのプロパティの画面と同じになる。
PS C:\> Get-NetAdapterBinding |  Where-Object {$_.Name -eq "Ethernet2"}

Name                           DisplayName                                        ComponentID          Enabled
----                           -----------                                        -----------          -------
Ethernet2                      Microsoft LLDP プロトコル ドライバー               ms_lldp              True
Ethernet2                      Microsoft ネットワーク用ファイルとプリンター共有   ms_server            True
Ethernet2                      インターネット プロトコル バージョン 4 (TCP/IPv4)  ms_tcpip             True
Ethernet2                      Microsoft ネットワーク用クライアント               ms_msclient          True
Ethernet2                      Microsoft Network Adapter Multiplexor Protocol     ms_implat            False
Ethernet2                      Link-Layer Topology Discovery Responder            ms_rspndr            True
Ethernet2                      インターネット プロトコル バージョン 6 (TCP/IPv6)  ms_tcpip6            True
Ethernet2                      Hyper-V Extensible Virtual Switch                  vms_pp               False
Ethernet2                      Link-Layer Topology Discovery Mapper I/O Driver    ms_lltdio            True
Ethernet2                      QoS パケット スケジューラ                          ms_pacer             True
設定変更はSet-NetAdapterBindingコマンドレットで行う。今回は「Ethernet2」の「ms_tcpip6」を無効化する。
PS C:\> Set-NetAdapterBinding -Name "Ethernet2" -ComponentID "ms_tcpip6" -Enable $false
設定後の確認を行うと、「インターネット プロトコル バージョン 6 (TCP/IPv6)」が「False」になっていることがわかる。
PS C:\> Get-NetAdapterBinding |  Where-Object {$_.Name -eq "Ethernet2"}

Name                           DisplayName                                        ComponentID          Enabled
----                           -----------                                        -----------          -------
Ethernet2                      Microsoft LLDP プロトコル ドライバー               ms_lldp              True
Ethernet2                      Microsoft ネットワーク用ファイルとプリンター共有   ms_server            True
Ethernet2                      インターネット プロトコル バージョン 4 (TCP/IPv4)  ms_tcpip             True
Ethernet2                      Microsoft ネットワーク用クライアント               ms_msclient          True
Ethernet2                      Microsoft Network Adapter Multiplexor Protocol     ms_implat            False
Ethernet2                      Link-Layer Topology Discovery Responder            ms_rspndr            True
Ethernet2                      インターネット プロトコル バージョン 6 (TCP/IPv6)  ms_tcpip6            False
Ethernet2                      Hyper-V Extensible Virtual Switch                  vms_pp               False
Ethernet2                      Link-Layer Topology Discovery Mapper I/O Driver    ms_lltdio            True
Ethernet2                      QoS パケット スケジューラ                          ms_pacer             True

NICに固定IPアドレスを付与する

NICに固定IPアドレスを設定する前に、インターフェースの名前を確認しよう。インターフェース一覧はGet-NetAdapterコマンドレットで確認できる。今回は「Ethernet2」を対象に設定変更を行うことにする。
PS C:\> Get-NetAdapter | Sort-Object Name

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet0                 Intel(R) 82574L Gigabit Network Conn...      16 Up           00-0C-29-AF-24-83         1 Gbps
Ethernet1                 Intel(R) 82574L Gigabit Network Co...#2       4 Up           00-0C-29-AF-24-8D         1 Gbps
Ethernet2                 Intel(R) 82574L Gigabit Network Co...#3      37 Up           00-0C-29-AF-24-97         1 Gbps
vEthernet (Intel(R) 82... Hyper-V Virtual Ethernet Adapter              9 Up           00-0C-29-AF-24-83         1 Gbps
続けて、インターフェースに設定されているIPアドレスをGet-NetIPAddressコマンドレットにて確認する。
PS C:\> Get-NetIPAddress |ft InterfaceAlias, IPAddress,PrefixLength

InterfaceAlias                                                          IPAddress                    PrefixLength
--------------                                                          ---------                    ------------
Ethernet2                                                               fe80::c57b:1420:969:f48b%37            64
vEthernet (Intel(R) 82574L Gigabit Network Connection - Virtual Switch) fe80::c19f:f1cb:d7ca:df6%9             64
ローカル エリア接続* 10                                                 fe80::155e:acfe:8b10:d8ab%12           64
Ethernet1                                                               fe80::7c63:ecf4:628:44e4%4             64
Loopback Pseudo-Interface 1                                             ::1                                   128
Ethernet2                                                               169.254.244.139                        16
vEthernet (Intel(R) 82574L Gigabit Network Connection - Virtual Switch) 192.168.11.111                         24
ローカル エリア接続* 10                                                 169.254.2.65                           16
Ethernet1                                                               192.168.55.111                         24
Loopback Pseudo-Interface 1                                             127.0.0.1                               8
それではIPアドレスを設定してみよう。IPアドレスはNew-NetIPAddressコマンドレットで設定可能となる。-DefaultGatewayオプションを付けることでデフォルトゲートウェイの設定も可能。ただし、デフォルトゲートウェイはサーバ内で1つしか設定できないため、本コマンドでデフォルトゲートウェイを設定した場合、すでに設定済みデフォルトゲートウェイの設定がある場合は消えてしまうので注意すること。

「Ethernet2」のアダプターに対して、「192.168.77.111/24」でデフォルトゲートウェイを「192.168.77.31」に設定してみた。
PS C:\> New-NetIPAddress -IPAddress "192.168.77.111" -InterfaceAlias "Ethernet2" -DefaultGateway "192.168.77.31" -PrefixLength 24


IPAddress         : 192.168.77.111
InterfaceIndex    : 37
InterfaceAlias    : Ethernet2
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 192.168.77.111
InterfaceIndex    : 37
InterfaceAlias    : Ethernet2
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Invalid
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : PersistentStore
設定を元に戻す場合は、デフォルトのDHCPに変更すればよい。
Set-NetIPInterface -InterfaceAlias "Ethernet2" -Dhcp Enable

NICの有効化・無効化

NICの有効化はEnable-NetAdapterコマンドレットで行うことができる。
PS C:\> Enable-NetAdapter -Name "Ethernet2"
NICの無効化はDisable-NetAdapterコマンドレットで行うことができる。
PS C:\> Disable-NetAdapter -Name "Ethernet2"

確認
この操作を実行しますか?
Disable-NetAdapter 'Ethernet2'
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y
確認が不要な場合は-Confirm $falseをオプションとして付与すればよい。
PS C:\> Disable-NetAdapter -Name "Ethernet2" -Confirm $false

0 件のコメント:

コメントを投稿

人気の投稿