WhitePotageのブログ

ミント菓子はかっらーいのがイイんだよねと思っている人

Windows10 1709 用 リモートサーバー管理ツールで「DNS」が消えてしまったら

中小 Active Directory 管理者の皆様こんにちは。
Windows10のメジャーアップデートを実行すると「リモート管理ツール」が居なくなるっていうアレ、毎回毎回どうにかならんですかね。 しかも、再インストールするとコンポーネントが欠けてるとか… KB出てるけど、要するに不具合でしょ(^-^#)ビキィ

というわけでそういう話題です。
KB出てるけど、そちらで効果がなかった場合はこちらで回復してくださいませ。

症状

「リモートサーバー管理ツール」がインストールされたWindows10をアップデートすると、ツールが消される。 これ自体は仕様なので、アップデート後のバージョンに適合する管理ツールを取得してインストールすれば良い。

 https://www.microsoft.com/ja-JP/download/details.aspx?id=45520

んだけど、現時点でカレントの「1709用(WindowsTH-RSAT_WS_1709-x64.msu)」を実行すると、なぜか「DNS」が欠けた状態でインストールされるんだ…。(^-^#)

f:id:WhitePotage:20180101164756p:plain

管理ツール「DNS」の実ファイル名は「%SystemRoot%\system32\dnsmgmt.msc」。なんだけど、これ自体がPC内に存在しない。つまり、インストールされていないというわけ。

このとき「Windowsの機能」を確認すると、チェックボックスはONになっている。OFF->ONしても状況は変わらず、効果なし。

f:id:WhitePotage:20180101165025p:plain

普通の対処法

該当するKBが出てます。
自動翻訳がガタガタだが、気にせず原語版の通りに実行しましょう(^-^#)

https://support.microsoft.com/ja-jp/help/4055558/rsat-missing-dns-server-tool-in-windows-10-version-1709

要約すると、まずは更新プログラム「KB2693643」をアンインストール。エラーが出るけど構わずにOKボタンを押し、再起動させて先に進む。
あとの手順はくだくだ書いてもKBの通りなので、ダウンロードからファイルの設置・実行については省略。 要するに、KBに記された下記の3ファイルが、ローカルPCの同一フォルダに並んだ状態にして処理を始めれば良い。

  • WindowsTH-RSAT_WS_1709-x64.msu(管理ツールのインストーラー。赤文字は環境にあわせて)
  • unattend_x64.xml(KBのサンプルをコピペして保存)
  • installx64.bat(KBのサンプルをコピペして保存)

それでもダメだったら?

つまり、自分の環境ではダメだったわけだが(^-^#) ビキビキ

まあ、自分の環境はCBBの都合で、周回遅れの1703にアップデートされてる。
1703に1709のプログラムを実行したから駄目だったのか? いやそうでもないだろう(きっと)
というわけで先ほどのバッチファイルをじっくり見てみる。

まず、バッチファイルの末尾の行

  [rmdir ex /s /q]

を消して再実行すると、バッチファイル内で展開された一時フォルダが消されずに残る。
すると、一時フォルダ(つまり、インストーラー)の階層内にはにちゃんとDNS管理ツールの実体、「dnsmgmt.msc」が存在することがわかった。

f:id:WhitePotage:20180101170037p:plain

なんて長いフォルダ名なんだ(怒)
ともあれ、インストールという処理は要するにファイルコピーなのであるから、この実体をしかるべき場所に置いてやれば良い。

そこにあるファイル、および依存性があってかつ現在のPCに足りないファイルを、それぞれ下記の場所にコピーする。日本語環境でない人は赤文字部分を自分のロケールへ変更。

  • 本体 (dnsmgmt.msc)
    場所:(一時フォルダ)\ex\ex\amd64_microsoft-windows-d..er-snapin.resources_31bf3856ad364e35_10.0.16299.2_ja-jp_4a92b34b2bab1df4
    コピー先:%SystemRoot%\system32
  • 本体が参照するDLLファイル(dnsmgr.dll)
    場所:(一時フォルダ)\ex\ex\amd64_microsoft-windows-dns-server-snapin_31bf3856ad364e35_10.0.16299.2_none_946c2f555824ecef
    コピー先:%SystemRoot%\system32

コピーしたファイルがdllの場合、置くだけではレジストリに入らないので下記コマンドで登録する。

  > cd %SystemRoot%\System32
  > regsvr32 dnsmgr.dll

ちなみに、最初にコピーした「dnsmgmt.msc」は中身がXMLなので、これをエディタで見ると、動作に必要なファイル(の、クラスID)がわかる仕組みらしい。
クラスIDが示すファイルが何なのかは、たとえばDNS管理ツールががまともに動く別のPCでregeditを実行して探す(怒)そうするとDLLファイル名が特定できるよ…。

以上で動作条件がそろったはずなので、Cortanaあたりからフルパスで起動してみる。

  [%SystemRoot%\System32\dnsmgmt.msc]

そうすると、アイコンは怪しいながらも一応DNSコンソールが起動するようになった。管理できるようになったよ母ちゃん!

f:id:WhitePotage:20180101180229p:plain


ところで右ペイン、前からこんなアイコンだっけ? 忘れたけど、中身が使用に耐えればいいや…。

あとはショートカット類とスタートメニューのなんちゃって登録をする。
「管理ツール」の一覧に出すには、

  • さきほどの dnsmgmt.msc をコピーして、デスクトップにショートカットを作成
  • 作成したショートカットを、「DNS」とでもリネームする
  • [コントロール パネル\システムとセキュリティ\管理ツール]の場所に管理者でペースト

スタートメニューに出すには、普通に右クリックして登録。あ、名前が「dnsmgmt」で登録されてしまった。 もっとWindowsに詳しければこのへんを正しく登録して、自動で復活するようにできるんだろうけど、もうそのへんは諦める。
DNSマネージャーが使えればいいんだ…。 もういいんだ…。

最後に

ところで、最新の1709を使っている人を含め、この面倒くさい不具合って何だったの?
KB出すのもいいけど、おおもとの配布ファイルも直してくださいお願い。 

 


スポンサー