管理ツールにある「コンピュータの管理」は右クリックで「別のコンピュータへ接続」を実行することができます。
一部のWindows10 PCでこれが接続できなかったので対処した内容をご報告です。
別のコンピュータへ接続
Windows10の管理ツールにある「コンピュータの管理」を始めとした「サービス」や「イベントビューア」などのMMCは右クリックで「別のコンピュータへ接続」を実行して、ネットワーク経由で他のPCのコンピュータをリモート管理することができます。
例えば、上図のようにコンピュータの管理MMC画面で、メニューの「コンピュータの管理(%COMPUTERNAME%)」とある箇所を右クリックすると、別のコンピュータへ接続という選択ができます。
これが繋がらなかったのが発端です。
エラー内容
今回の対象は「サービス」画面、ここで「別のコンピュータへ接続」を実行したところ、以下のエラーが表示されてしまいました。
--------------------------------------------------------------
---------------------------
サービス
---------------------------
%COMPUTERNAME% のサービス コントロール マネージャー データベースを開くことができません
エラー 5: アクセスが拒否されました。
--------------------------------------------------------------
接続できないようです。試しにscコマンドで別のコンピュータ指定でサブコマンドqueryを実行してしてみました(sc \\%COMPUTERNAME% query %ServiceNAME%)が、
--------------------------------------------------------------
[SC] EnumQueryServicesStatus:OpenService FAILED 5:
アクセスが拒否されました。
--------------------------------------------------------------
認証かなと思ったので、runasを入れて、
runas /user:%COMPUTERNAME%\%USERNAME% "cmd /K sc \\%COMPUTERNAME% query %ServiceNAME%"
こんな感じでやってみたものの、結果は上記と同じエラーになってしまいました。認証が原因ではないということのよう。
Windowsファイアウォールでブロックされているのかと考えて、接続先となる対象のPCでファイアウォールを一時的に無効化して試行しましたが、エラーは変わらなかったので、ファイアウォールのブロックは関係ないと切り分けました。
必要なのはWinRM有効化
なんとなくですが解決方法として、昔Hyper-V ServerというOSを使っているときに、Hyper-V管理ツールを別PCで実行してネットワーク経由でvmmsサービスに接続する時に使った方法が必要なのかなと思いましたので、やってみることにしました。
以下の操作は「アクセスされる側のWindows」で実行します。
まずは、管理者として実行したPowerShellを起動します。
起動した画面で「winrm quickconf」を実行して、対話式に有効化していきます。ここでWindowsファイアウォールの例外を有効化も実施してくれます。
次に、ローカルグループポリシーエディタ(gpedit.msc)を開いて、「ローカルコンピュータポリシー」⇒「コンピュータの構成」⇒「管理用テンプレート」⇒システム」の順で開き、一覧から「資格情報の委任」を開きます。
※上図の画面は設定後の状態の画面ですが、これ以降の手順で設定していきます。
最初に設定するのは「NTLM のみのサーバー認証で新しい資格情報の委任を許可する」をダブルクリックで開きます。
有効にして、「サーバを一覧に追加」の表示ボタンで「WSMAN/*」と入力して、OKボタンで有効化します。
二つ目は、「NTLM のみのサーバー認証で保存された資格情報の委任を許可する」を開いて設定していきます。
開いたら、まずは「有効」化をして、「サーバを一覧に追加」の表示ボタンをクリックし、画面には「*」を入力します。
完了後、OKボタンで有効化します。
これでポリシーの設定が出来たので、反映していきます。コマンドプロンプトで「gpupdate /force」を実行。
正常に反映されたら、アクセスされる側の操作は完了です。
試してみる
ここからはアクセスする側のPCで動作確認です。
サービスmmc(services.msc)を起動して、右クリックから「別のコンピュータへ接続」をクリックしてアクセスされる側のコンピュータ名を入力して指定します。
ちょっと時間を置いて、リモートコンピュータのサービスmmc画面を開くことが出来るようになります。
無事、開くことができるようになりました。
と、言うことは「WinRMが有効化されていなかったことがアクセスが拒否された原因」という結論に達しました。
けど、グループポリシーエディタの表記でNTLMという単語が見えたので、NTLM廃止が発表された現状では、これが使えるのも廃止までの期間だけということになりそうです。