Windows Serverのネットワーク設定

概要

本記事では、Windows Serverにおけるネットワーク設定をPowerShellで統一的に管理する方法を解説します。
静的IP構成、DNS指定、ルーティング優先度調整、複数NIC運用時の注意点を解説します。


変数表記について

変数名 設定例 説明
<<INTERFACE_ALIAS>> Ethernet0 対象のネットワークアダプター名
<<IP_ADDRESS>> 192.168.10.100 固定IPアドレス
<<PREFIX_LENGTH>> 24 サブネットプレフィックス長(例: 255.255.255.0 → 24)
<<GATEWAY>> 192.168.10.1 デフォルトゲートウェイ
<<DNS1>> 192.168.10.10 プライマリDNSサーバー
<<DNS2>> 8.8.8.8 セカンダリDNSサーバー(任意)

Step 1: 現在のネットワーク構成を確認する

まず、NIC一覧と現在のIP設定を確認します。

# アダプター一覧を確認
Get-NetAdapter | Select-Object Name, Status, MacAddress, LinkSpeed

# IP構成を確認
Get-NetIPAddress | Select-Object InterfaceAlias, IPAddress, PrefixLength, DefaultGateway,PrefixOrigin
OriginType 意味 備考
Manual 手動で設定された静的アドレス PowerShellまたはGUIで明示的に指定された設定
DHCP DHCPサーバーによって自動割り当てされたアドレス Set-NetIPInterface -Dhcp Enabled により自動取得
WellKnown システム予約のリンクローカルまたはAPIPAアドレス DHCP未応答時の169.254.x.xなどに該当

Step 2: DHCPから静的IPに変更する

DHCPを無効化し、固定IPを指定します。

# DHCPを無効化
Set-NetIPInterface -InterfaceAlias "<<INTERFACE_ALIAS>>" -Dhcp Disabled

# DHCPアドレスを削除(存在する場合のみ)
Get-NetIPAddress -InterfaceAlias "<<INTERFACE_ALIAS>>" -AddressFamily IPv4 |
  Where-Object { $_.PrefixOrigin -eq "Dhcp" } |
  Remove-NetIPAddress -Confirm:$false

# 静的IPを設定
New-NetIPAddress `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -IPAddress "<<IP_ADDRESS>>" `
  -PrefixLength <<PREFIX_LENGTH>> `
  -DefaultGateway "<<GATEWAY>>"

注意:
Remove-NetIPAddress はDHCP割り当てを削除するためにのみ使用します。
リモート接続中のNICに対して誤って実行すると通信断の危険があります。


Step 3: DNSサーバーを設定する

DNSサーバーを指定して適用を確認します。

# DNS設定
Set-DnsClientServerAddress `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ServerAddresses ("<<DNS1>>","<<DNS2>>")

# 設定内容を確認
Get-DnsClientServerAddress -InterfaceAlias "<<INTERFACE_ALIAS>>"

DNSキャッシュをクリアして解決動作を検証します。

Clear-DnsClientCache
Resolve-DnsName "www.microsoft.com"

Step 4: 複数NIC環境での優先順位を設定する

複数ネットワークを持つサーバーでは、ルーティング優先度(InterfaceMetric)を手動で制御します。
値が小さいほど優先されます。

# 現在の優先順位を確認
Get-NetIPInterface | Sort-Object -Property InterfaceMetric |
  Select-Object InterfaceAlias, AddressFamily, InterfaceMetric

# 優先度を変更(管理用NICを優先)
Set-NetIPInterface -InterfaceAlias "<<INTERFACE_ALIAS>>" -InterfaceMetric 10

推奨値例:

  • 管理LAN:10
  • バックアップLAN:20~50
  • クラスタ/iSCSI通信:100 以上

Step 5: 動作確認

疎通とDNS解決を確認します。

# ゲートウェイ到達確認
Test-Connection "<<GATEWAY>>" -Count 4

# 名前解決確認
Resolve-DnsName "www.microsoft.com"

補足:
DNS設定が反映されない場合、net stop dnscache && net start dnscache でDNSクライアントサービスを再起動します。


Step 6: IPv6を無効化する(要件に応じて)

Windows ServerではIPv4とIPv6が既定で共存します。環境ポリシーやIPv6未使用のネットワークでは、明示的にIPv6を無効化して不要な経路広告や名前解決の揺らぎを抑止できます。

# IPv6の有効状態を確認
Get-NetAdapterBinding `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ComponentID "ms_tcpip6"

# IPv6を無効化
Disable-NetAdapterBinding `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ComponentID "ms_tcpip6" `
  -PassThru

# 再確認
Get-NetAdapterBinding `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ComponentID "ms_tcpip6"

IPv6を再度有効化するには次のコマンドを使用します。

Enable-NetAdapterBinding `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ComponentID "ms_tcpip6"

Step 7: ベストプラクティス

  • NIC名を固定する
    自動認識や更新によるNIC名変更を防ぐため、Rename-NetAdapterで管理名を設定します。

    Rename-NetAdapter -Name "<<INTERFACE_ALIAS>>" -NewName "LAN-Primary"
    
  • 不要なルートを削除
    重複や誤経路を防ぐため、明示的にルートを整理します。

    Get-NetRoute -AddressFamily IPv4
    Remove-NetRoute -DestinationPrefix "0.0.0.0/0" -InterfaceAlias "BackupNIC" -Confirm:$false
    

ネットワークアダプターの有効/無効化

# アダプター無効化
Disable-NetAdapter -Name "<<INTERFACE_ALIAS>>" -Confirm:$false
# アダプター有効化
Enable-NetAdapter -Name "<<INTERFACE_ALIAS>>"

固定IP設定の削除とDHCPへの切り替え

静的IP設定を削除し、DHCPを有効にします。

Remove-NetIPAddress -InterfaceAlias "<<INTERFACE_ALIAS>>" -IPAddress "<<IP_ADDRESS>>" -Confirm:$false
Set-NetIPInterface -InterfaceAlias "<<INTERFACE_ALIAS>>" -Dhcp Enabled

まとめ

PowerShellを利用すれば、Windows Serverのネットワーク設定をスクリプトで正確かつ再現可能に管理できます。
特に複数NIC構成では、ルーティング優先度の制御DNS構成の明示化が安定運用の鍵です。
初期構築段階からスクリプト化を取り入れ、再構築や展開に強いネットワーク管理を実現しましょう。