AD参加パソコンのDNS設定を一括で変更する方法。

Windows Active Directory環境において、

  • ドメインコントローラー(兼DNS)が新しく追加された。
  • ドメインコントローラのリプレース時にIPアドレスを変えたい。

と言った時に、ADに参加しているクライアント端末のDNS設定を変更したいケースがあります。
そのための情報を紹介します。

前提条件・環境

例えば、

  • Windows Server 2008 Active Directoryで
  • ADクライアント端末はWindows 7

といった環境で説明します

結論、GPO(ログオンスクリプト・UAC無効)とnetshコマンドでAD参加パソコンのDNS設定変更可能

image

ただし、条件があります。

ADクライアント端末で使用している一般ドメインユーザーが、そのパソコン(クライアント端末)のローカルadministratorsグループに所属している事が条件になります。
もしも、所属してい無い場合は、DNSの設定変更は困難です。

どのようにADクライアント端末のDNS設定を変更するかと言うと

  1. GPOでUACを無効にする(既にADクライアント端末のUACが無効ならば不要作業)
  2. GPOでログオンスクリプトを有効にする
  3. ログオンスクリプトをnetshコマンドで作成する
  4. 最後に、GPOを適用する。

※ 「コンピュータの構成」にあるスタートアップスクリプトを利用することにより、UACやローカルadministrators権限が無くても実行できました。(検証)

以上で、ADクライアント端末のDNS設定を変更できます。

1、GPOでUACを無効にする。

image

netshコマンドでDNSを変更する為には、Windows 7のUAC(ユーザーアクセス制御)を無効にしてあげる必要があります。
GPOの「コンピュータの構成」-「ポリシー」-「Windowsの設定」-「セキュリティの設定」-「ローカルポリシー」-「セキュリティオプション」から
「ユーザーアカウント制御:管理者承認モードですべての管理者を実行する」を無効にします。

これが出来ていないと、いくらローカルのadministrators権限でも以下のエラーでDNS設定を変更できません。

image

「要求された操作には、権限の昇格が必要です。管理者として実行してください」

これがUCAです。(コマンドプロンプトを起動する時に右クリックして「管理者として実行」しなければならない)

2、GPOでログオンスクリプトを有効にする

image

GPOで「ユーザーの構成」-「ポリシー」-「Windowsの設定」-「スクリプト(ログオン/ログオフ)」から
「ログオン」をクリックし、スクリプトのパスを追加します。

上の画面の「ファイルの表示」ボタンを押すと、ログオンスクリプトの通常配置場所のフォルダが開きます。
以下のようなパスになります

image

3、ログオンスクリプトをnetshコマンドで作成する

image

例えば、上記のようなログオンスクリプトを用意する。
DNS設定を追加しているのは、「netsh」コマンドです。
また、不要になったDNS設定を削除することも、追加するDNS順番を変えることもnetshオプションで可能です。

※ このログオンスクリプトの場合、Windows 7パソコンに対し、「ローカル エリア接続」のネットワークアダプタのみに設定が出来ます。

4、最後に、GPOを適用する。

ドメインユーザー(ログオンスクリプト)とドメインコンピュータ(UAC)にそれぞれGPOを割り当て
作業が完了です。

これでADクライアントのDNS設定を変更出来ます!
一括は危険なので(ログオンスクリプト間違い等)、少しずつOUにGPOを適用しDNS変更をしていきましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です