Windows 10 Homeエディション端末をリモートで管理したい

エンジニアの方は企業内で使用するWindows Professionalエディション以上だよねとお思いの方が多いかと思いますが、ベンチャー企業や中小企業ではHomeエディション端末も結構あったりします。

そして、コロナによるリモートワーク拡大もあって、サポート対応可能なメンバーが在宅勤務となり、社内からのサポート問い合わせ電話やチャットで対応する事も増えていると思います。

そこで問題になるのが、「リモート操作」したいという場面。

Professionalエディション以上であればリモートデスクトップが使用できますので、社内へVPNさえできればリモートで操作して対応できるのですが、Homeエディションではリモートデスクトップが使用できないので不可能です。

そこで、代替え手段を検討する必要があります。

リモートから操作をする

Homeエディションの場合、リモートデスクトップのようなGUI操作は他社アプリケーションを導入しないと無理ですが、コマンドプロンプトやPowerShellによるリモート操作であれば事前に設定を行うことで可能になります。
Professionalエディション等でも利用できる機能ですので覚えておくと何かの時に役に立つかもしれません。

接続先端末では、Powershellを使用する場合、準備設定が色々必要になるのですが、コマンドプロンプトであれば、Windowsファイヤーウォールの許可設定とリモートUACの無効化を行うことで接続ができるようになりますので設定をお願いする場合でもハードルは低いでしょう。

接続元端末にはMicrosoftが公開しているツールを使用する必要がありますが、こちらもインストールは必要なく、ダウンロードした実行ファイルを展開して保存しておけばよいので難しくはないと思います。

尚、本設定はリモート接続を許可することになるため、使用環境によっては脆弱性となることもありますので、十分ご注意ください。

接続先端末の設定

Windowsファイヤーウォールが有効の場合は事前に下記ポリシーを有効化してリモート接続を許可しておく必要があります。

  • ファイルとプリンターの共有 (エコー要求 – ICMPv4 受信)
  • Windows Management Instrumentation (DCOM 受信)
  • Windows Management Instrumentation (WMI 受信)
  • Windows Management Instrumentation (非同期受信)
  • リモート サービス管理 (NP 受信)
  • リモート サービス管理 (RPC)
  • リモート サービス管理 (RPC-EPMAP)

※全てパブリック、プライベート、ドメインに対するポリシーがあります。

又、レジストリ設定を変更してリモートUACを無効にします。
対象となるキーがない場合は新規作成をします。

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
LocalAccountTokenFilterPolicy
REG_DWORD値で1を設定する。

ファイヤーウォールの設定とレジストリの設定はバッチ化できますので、ユーザーに作業を依頼する場合もそれほど負担にはならないと思います。
尚、コマンドの実行にはコマンドプロンプトを[管理者として実行]で開く必要があります。

バッチ化する場合はこんな感じになります

netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)" profile=public new enable=yes profile=any
netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)" profile=private new enable=yes profile=any
netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)" profile=domain new enable=yes profile=any
netsh advfirewall firewall set rule name="Windows Management Instrumentation (DCOM 受信)" profile=public,private new enable=yes profile=any
netsh advfirewall firewall set rule name="Windows Management Instrumentation (DCOM 受信)" profile=domain new enable=yes profile=any
netsh advfirewall firewall set rule name="Windows Management Instrumentation (WMI 受信)" profile=public,private new enable=yes profile=any
netsh advfirewall firewall set rule name="Windows Management Instrumentation (WMI 受信)" profile=domain new enable=yes profile=any
netsh advfirewall firewall set rule name="Windows Management Instrumentation (非同期受信)" profile=public,private new enable=yes profile=any
netsh advfirewall firewall set rule name="Windows Management Instrumentation (非同期受信)" profile=domain new enable=yes profile=any
netsh advfirewall firewall set rule name="リモート サービス管理 (NP 受信)" profile=public,private new enable=yes profile=any
netsh advfirewall firewall set rule name="リモート サービス管理 (NP 受信)" profile=domain new enable=yes profile=any
netsh advfirewall firewall set rule name="リモート サービス管理 (RPC)" profile=public,private new enable=yes profile=any
netsh advfirewall firewall set rule name="リモート サービス管理 (RPC)" profile=domain new enable=yes profile=any
netsh advfirewall firewall set rule name="リモート サービス管理 (RPC-EPMAP)" profile=public,private new enable=yes profile=any
netsh advfirewall firewall set rule name="リモート サービス管理 (RPC-EPMAP)" profile=domain new enable=yes profile=any
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

又、接続先端末のビルドインAdministratorを有効化し、これを使用することで作業の際に権限不足でエラーになる可能性が少なくなります。

Homeエディションの場合は、GUIからビルドインAdministratirの有効化が行えませんので、コマンドプロンプトを[管理者で実行]で開いた後、下記コマンドを実行します。

net user administrator /active:yes

引き続きビルドインAdministratorにパスワード設定を行います。
下記コマンドを実行するとパスワードを2回聞かれますので入力します。

net user administrator *

接続元の端末の設定

接続元端末ではMicrosoftが配布している無償ツールのPSexeを使用しますので、PowerToysサイトからPSToolsをダウンロードします。

https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

ダウンロードされた「PSTools.zip」を展開し、Cドライブ直下などに保存します。

接続方法

接続元端末にてコマンドプロンプトを[管理者で実行]で開いた後、PSToolsのフォルダに移動します。

Cドライブ直下に展開したフォルダを保存した場合、「C:\PSTools」となっていると思います。

cd c:\PSTools

PSexecを使用してリモート接続を行います。
PSexecの基本的な実行方法は下記のようになります。

psexec \\接続先IP又はホスト名 -u ユーザー名 -p パスワード -i 実行コマンド

ユーザー名とパスワードは先ほど接続先端末で有効化したビルドインAdministerを指定します。
実行コマンドについては下記のように直接コマンドを指定すると結果が返ってきます。

psexec \\接続先 -u User -p Password -i ipconfig /all

コマンドを指定せず、cmd.exeを指定するとコマンドプロンプトが開きますので、そのままコマンドを入力すると接続先で実行した結果が表示されます

psexec \\接続先 -u User -p Password -i cmd

net useコマンドを使えばアカウントの追加削除やパスワード変更などもできますし、オプション指定を変更する事でバッチファイルなどを接続先で実行する事も可能ですので、興味がある方は調べてみるのもよいと思います。

投稿者プロフィール

takai
takai
<インフラエンジニア>
■ 家電量販店での商品販売や配送、設置、テクニカル対応等の経験と知識を活用し、Windows環境を主としてオンプレミスの端末、サーバー、ネットワーク構築・運用経験豊富なエンジニア。
■ 広く浅くDIY、電子工作、車、カメラ、動画撮影など多岐色々なことに興味を持ち、自宅に簡易な検証環境を構築して日々コンピュータと戯れている逸般人

コメントを残す

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