主に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