ワークグループのマシンで他のマシンの管理コンソール(Hyper-Vコンソールやサーバマネージャ)を利用したい

投稿者: | 2019年6月10日

Windowsの機能更新でDCOMとかwinrmの設定が消える

MicrosoftはDCOMをやりたくないとか、ワークグループのマシンはスタンドアロンでの使用しか考えていないのでしょうか?

Windows 10の機能更新をするたびに、winrm の設定が消えます。
DCOMのアクセス権の変更をした部分も消えました。

つまり、ほぼやり直しでした。
毎回、機能更新のたびにこんな感じで。以前はDCOMのアクセス権設定は消えていなかった気がしますが、winrmが消えるのは毎回です。

つながらない…と思って、このページを見に来た人がいるなら、一番怪しいのは IPv6 を利用しない状態にしていないことでしょうか。 IPv6 が有効な場合、動作しなくてハマった経験があります。

やりたいことは、他のマシンの管理

自分の家では、Windows 10 Proマシンで、クライアントHyper-Vを立ち上げたものが3台あり(1台予備)、使用中のマシンから他のマシンのHyper-Vコンソールを表示できると便利です。
仕事の場面で(それはWindows Server 2016)も、費用の関係でActiveDirectoryを用意できないのに、他のマシンのサーバーマネージャを見たいとか、管理コンソールを利用したいという要求がありました。この方法はセキュリティを緩める部分もあるのですが、完全に隔離されたネットワーク、場所であり、アクセスにはユーザーとパスワードの管理もあり、扱うものが個人情報ではない点で容認されました。

通常の場合、ActiveDirectoryを用意しろよ、という話です。

設定箇所

computerAと、computerBと、computerCの3台のパソコンから、hostAのコンソールを利用したい場合の例です。

【hostAでの作業】
コマンドプロンプトを管理者で実行します。

winrm quickconfig

これで yes/no を聞いてくるので、y でも yes でも。

【hostAでの作業】
続けて、以下のコマンド。
設定するマシンは、computerAと、computerBと、computerCの3台からアクセスを許すことを明示的に許可します。

winrm set winrm/config/client @{TrustedHosts="computerA,computerB,computerC"}

【hostAでの作業】
続けて、以下のコマンドを実行します。

dcomcnfg

これでGUIが出てくるので、
左ペインのコンソールルート>コンポーネントサービス>コンピューターと表示をしていき、マイコンピューターを右クリックして「マイコンピューターのプロパティ」を表示。
「COMセキュリティ」のタブをクリック。
上段『アクセス許可』の、『既定値の編集』をクリック。
「既定のセキュリティ」にある「グループ名またはユーザー名」の中に、『追加』をする。
検索での追加で、ANONYMOUS LOGINを選んで元の画面に戻り、下段のアクセス許可の中のローカルアクセスとリモートアクセスを許可にする。(ここはリモートだけでもいいかもしれない。設定する時点で、気にしても意味がない程度のセキュリティの低下ですが。)
適用>OKでGUIを閉じます。

【hostAでの作業】
レジストリエディタを実行します。

regedit

設定箇所

HKLM\SOFTWARE\Microsoft\Windows\CurrentVertion\Policies\System

設定値

キー:LocalAccountTokenFilterPolicy
種類:DWORD
値:1

これはUACの制限回避になるので、セキュリティ面では「毒を食らわば皿まで」の覚悟が求められていると思ってください。

これで設定はできたので、あとは、接続する側のマシン。
つまり、computerAと、computerBと、computerCがわです。

【接続するマシンでの作業】
コマンドプロンプトで実行します。

hostAに対して設定し、hostAにはadministratorの名前で管理者がいて、そのパスワードが@dm1np@ssの場合です。

cmdkey /add:hostA /user:administrator /pass @dm1np@ss

実際には、ここはせめて、毒を食らわば皿までで皿まで食ってもフォークはやめておくくらいの気持ちで、administrator 以外の管理者ユーザーを作って使う手もあるでしょう。うちはそうしています。もちろん、うちのadministratorのパスワードは@dm1np@ssではありません。

【すべてのマシンでやっておくほうがいい】
どうやら、ネットワークがPrivateでないと接続がうまくいかないこともあるようで、これを変更します。

これはPowershellから。(複数NICがある場合なども、全部のネットワークをPrivateにしてしまいます。)

Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private

IPv6 を無効にしてください。

時間があったら、画面等取ります。ネットワーク接続のアダプターのオプションを変更するところで、利用しているアダプターの 「インターネットプロトコル バージョン 6 (TCP/IPv6) のチェックが入っていると利用できませんでした。

Windowsの機能更新をすると、この設定が落ちたりするので…備忘録で。