やっててよかったPowershellのリモート接続、今日はリモートデスクトップ接続できなくなった(原因はWindowsファイアウォールの場合)PCをPwershellでリモートデスクトップ接続できるようにした、というご報告です。
次に同じことが起きた時のために自分のためにメモ。
ちなみにPSEXECでも同じようなことはできます。
blog.treedown.net関連記事:
(1/2)DOSコマンドでリモートログインしたい場合 - treedown’s Report
(2/2)DOSコマンドでリモートログインしたい場合 - treedown’s Report
これらでPowershellなりPSEXECなりでリモート操作可能なPCで、リモートデスクトップ接続ができなくなった、というのが今回のシチュエーション。
設定が変わった?
いままで空気を吸うようにリモートデスクトップ接続ができていたPCにいざ接続しようとしたら、
-------------------------------------------------------
[Window Title]
リモート デスクトップ接続
[Content]
リモート デスクトップはリモート コンピューターに接続できません。次のいずれかが原因です。
1) サーバーへのリモート アクセスが有効にされていない
2) リモート コンピューターの電源が入っていない
3) リモート コンピューターがネットワークで使用できない
リモート コンピューターの電源が入っていること、ネットワークに接続されていること、リモート アクセスが有効になっていることを確認してください。
-------------------------------------------------------
[OK] [ヘルプ(H)]
-------------------------------------------------------
こんな感じでエラーになってしまいます。
む、なぜかしら。
確認してみると、ファイアウォールらしい
いくつかの操作を試してみると、
- ping疎通不可
- ブロードキャストでの名前解決は可能
- PSEXEC接続可能
- Powershell(Enter-PSSession)接続可能
PC自体は起動しているようで、リモートデスクトップ接続が拒否されているような動きです。
そこで接続可能なPowershellで接続し、コマンドでファイアウォール設定からリモートデスクトップ接続の許可を設定することにしました。
Powershellから有効化
Powershellで「Enter-PSSession %IPアドレス%」で対象のPCを起動します。
Enter-PSSession 192.168.XX.XX
ファイアウォールでリモートデスクトップ接続を有効化
netsh advfirewall firewall set rule group="リモート デスクトップ" new enable=yes
とりあえずリモートデスクトップ接続が成功するように全部許可してしまい、あとでGUIでちゃんと設定を戻しておくようにします。
とりあえず接続できれば設定画面を開くことができるようになるから、これでリモートデスクトップ接続を実行。
無事設定完了。
おまけ:リモートデスクトップ接続が有効じゃない場合
リモートデスクトップ接続が有効になっていないといくらファイアウォールで許可設定しても有効になりません。
今回は試してないけど、一応メモ。
以下のレジストリキーを有効化するとリモートデスクトップ接続が有効化されるようになります。
-------------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"fDenyTSConnections"=dword:00000000
-------------------------------------------------------
これを.regファイルとかにして、regコマンドでレジストリキーを追加してやればうまくいくんじゃないかと。今度試してみよう。