インターネットを使うとき、あなたのコンピュータは「DNS」という仕組みを使っています。
DNSとは、ウェブサイトの名前(example.com など)をコンピュータが理解できる数字の住所に変換する仕組みです。
普段はマウスでクリックして設定を変えることが多いですが、PowerShellというツールを使えばコマンドで簡単に設定を変更できます。
これにより、設定の自動化やリモート操作が可能になります。
この記事では、PowerShellを使ってDNSサーバーのアドレスを変更する方法から、元に戻す方法、よくあるトラブルの解決方法まで、初心者の方にもわかりやすく説明します。
PowerShellでDNS設定を変更する準備

管理者権限でPowerShellを起動する
DNS設定を変更するには、管理者の権限が必要です。以下の手順で起動しましょう。
- スタートメニューを開く
- 「PowerShell」と入力して検索
- 「Windows PowerShell」を右クリック
- 「管理者として実行」を選択
どのネットワーク接続を変更するか確認する
コンピュータには複数のネットワーク接続(有線LAN、Wi-Fi など)があることがあります。どの接続のDNSを変更するか確認しましょう。
Get-NetAdapter | Select-Object InterfaceAlias, InterfaceIndex
このコマンドを実行すると、以下のような結果が表示されます:
InterfaceAlias InterfaceIndex
-------------- --------------
Ethernet 4
Wi-Fi 8
InterfaceAliasは接続の名前、InterfaceIndexは番号です。この情報を後で使用します。
DNSサーバーアドレスを設定する基本的な方法
番号を使って設定する方法
Set-DnsClientServerAddress -InterfaceIndex 4 -ServerAddresses ("8.8.8.8","8.8.4.4")
コマンドの説明
Set-DnsClientServerAddress
:DNS設定を変更するコマンド-InterfaceIndex 4
:接続番号4(Ethernet)を指定-ServerAddresses
:使用するDNSサーバーのアドレス
この例では、GoogleのパブリックDNS(8.8.8.8と8.8.4.4)を設定しています。
接続名を使って設定する方法
番号ではなく接続名でも指定できます:
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses @("1.1.1.1", "1.0.0.1")
この例では、CloudflareのDNS(1.1.1.1と1.0.0.1)を設定しています。
おすすめのDNSサーバー
- Google DNS:8.8.8.8, 8.8.4.4
- Cloudflare DNS:1.1.1.1, 1.0.0.1
- Quad9 DNS:9.9.9.9, 149.112.112.112
DNS設定を元に戻す方法
設定を変更後、元の状態に戻したい場合があります。以下のコマンドで、DHCP(自動取得)設定に戻すことができます:
Set-DnsClientServerAddress -InterfaceIndex 4 -ResetServerAddresses
-ResetServerAddresses
オプションを使うことで、手動設定を削除して自動取得に戻ります。
設定の確認とトラブルシューティング

現在のDNS設定を確認する
設定が正しく適用されているか確認しましょう:
Get-DnsClientServerAddress -InterfaceIndex 4
DNSキャッシュをクリアする
DNS設定を変更しても、古い情報が残っている場合があります。キャッシュをクリアしてリフレッシュしましょう:
Clear-DnsClientCache
DNS解決のテスト
設定したDNSサーバーが正しく動作しているか確認:
Resolve-DnsName google.com
このコマンドでgoogle.comのIPアドレスが表示されれば、DNS設定は正常に動作しています。
高度な設定:DNS over HTTPS(DoH)
Windows 10/11では、より安全なDNS over HTTPS(DoH)も設定できます:
Add-DnsClientDohServerAddress -ServerAddress "1.1.1.1" -DohTemplate "https://cloudflare-dns.com/dns-query" -AllowFallbackToUdp $False -AutoUpgrade $True
DoHのメリット
- 通信の暗号化
- プライバシーの保護
- 安全性の向上
よくあるトラブルと解決方法
設定が反映されない場合
原因:管理者権限でPowerShellを起動していない
解決方法:PowerShellを管理者として再起動する
設定がDHCP(自動取得)に戻ってしまう場合
原因:ネットワーク設定でDHCPが優先されている
解決方法:リセットではなく、もう一度静的なDNSアドレスを設定する
インターフェース番号がわからない場合
原因:ネットワーク環境の変化
解決方法:Get-NetAdapter
コマンドで最新の一覧を確認する
設定後もインターネットに接続できない場合
原因:DNSサーバーが応答しない、または間違ったアドレスを設定
解決方法:
- 別のDNSサーバーを試す
- 設定をリセットして元に戻す
- ネットワーク接続を確認する
複数の接続を一括設定する方法
すべてのネットワーク接続に同じDNS設定を適用する場合:
Get-NetAdapter | ForEach-Object {
Set-DnsClientServerAddress -InterfaceIndex $_.InterfaceIndex -ServerAddresses ("8.8.8.8","8.8.4.4")
}
このコマンドは、すべてのネットワーク接続にGoogleのDNSを設定します。
まとめ
PowerShellを使ったDNS設定の変更は、慣れてしまえばとても簡単です。この記事で学んだ内容をまとめると:
- 管理者権限でPowerShellを起動する
- Get-NetAdapterでネットワーク接続を確認
- Set-DnsClientServerAddressでDNSを設定
- -ResetServerAddressesで元に戻す
- Get-DnsClientServerAddressで設定を確認
PowerShellでのDNS設定は、GUIでの操作よりも効率的で、スクリプト化により複数台のコンピュータを一括管理することも可能です。
DNS設定を変更することで、インターネットの速度向上やセキュリティの強化が期待できます。ぜひこの記事を参考にして、あなたの環境に最適なDNS設定を見つけてください。
コメント