ネットワークの(最低限の)設定 (Windows)

主にipv4の設定です。ipv6は・・・知らん
Windowsだとネットワーク関連の設定はコンパネや「Windowsの設定」からGUIで設定しますよね。でも、1台だけ設定するならまだしも、何十台とあるパソコンを設定するのはもうウンザリしません? それBATファイル書いてダブルクリックして一瞬で終わらせましょう。
自動化するメリットはヒューマンエラーの削減です。
もちろん以下の情報だけでは全然足りませんが、何かのとっかかりにはなるかなと。

ネットワークインターフェイス一覧

ここで得られるindexや名前はnetshやrouteコマンドでネットワークインターフェイスを指定するのに必要な情報です。

# cmd
>> netsh interface ipv4 show interface

# powershell
>> Get-NetAdapter
IPアドレス等の確認
# cmd
>> ipconfig /all
もしくは
>> netsh interface ipv4 show ipaddresses
もしくは
>> netsh interface ipv4 show config

# powershell
>> Get-NetIPAddress -AddressFamily IPv4
見にくい場合は、パイプで ogv(Out-GridView) に接続

前提条件 例題:以下を設定する。
インターフェイス名:イーサネット,
インターフェイスインデックス:10,
IP Address:192.168.0.10,
mask=24bit,
デフォルトゲートウェイ: 192.168.0.1
DNS: 8.8.8.8 or 1.1.1.1
※ PowerShellの場合、-WhatIf を最後につけて実行すると、DRY RUN モード?になります。

IPアドレス等の基本設定
# cmd
>> netsh interface ipv4 set address "イーサネット" static 192.168.0.10 255.255.255.0 192.168.0.1
もしくは・・・
>> netsh interface ipv4 set address name=10 source=static address=192.168.0.10/24 gateway=192.168.0.1

# powershell
>> New-NetIPAddress -InterfaceIndex 10 -IPAddress 192.168.0.10 -PrefixLength 24 -DefaultGateway 192.168.0.1
既に設定しているものを更新するには・・・
>> Set-NetIPAddress -InterfaceIndex 10 -IPAddress 192.168.0.10 -PrefixLength 24

※事前にインターフェイス名もしくはインターフェイスインデックス番号を確認しておく必要があることに注意
※ PowerShellでは -InterfaceIndexもしくは -InterfaceAlias で設定するネットワークインターフェイスを指定する。

DNS設定
# cmd
>> netsh interface ipv4 set dnsservers "イーサネット" static 1.1.1.1 primary

# powershell
>> Set-DnsClientServerAddress -InterfaceIndex 10 -ServerAddresses ("8.8.8.8","8.8.4.4")
ネットワークインターフェイスの設定
# cmd
MTU値の変更(ジャンボフレームとか)
>> netsh interface ipv4 set interface "イーサーネット" mtu=9000

インターフェイスメトリクスの設定(PCに複数のNIC等が存在してる場合など設定する必要があるかも)
>> netsh interface ipv4 set interface "イーサーネット" metrics=1000

# powershell
MTU値の変更(ジャンボフレームとか)
>> Set-NetInterface -InterfaceIndex10 -NlMtuBytes 9000

インターフェイスメトリクスの設定(PCに複数のNIC等が存在してる場合など設定する必要があるかも)
>> Set-NetIPInterface -InterfaceIndex 10 -InterfaceMetric 1000
ルーティングテーブル確認
# cmd
>> netsh interface ipv4 show route
もしくは
>> route print -4

# powershell
>> Get-NetRoute -AddressFamily IPv4
ルーティング追加

※ インターフェイス名「イーサーネット2」インデックス 20 のインターフェイスのルーティングを永続的に変更。

# cmd
宛先10.0.0.0は192.168.10.1に流す。
>> netsh interface ipv4 set route 10.0.0.0/24 "イーサネット" 192.168.10.1 store=persistent
もしくは
>> route -p add 10.0.0.0 mask 255.255.255.0 192.168.10.1 IF 20
(-pは永続化オプション)

# powershell
>> New-NetRoute -DestinationPrefix "10.0.0.0/24" -InterfaceIndex 20 -NextHop 192.168.10.1