どうも、Tです。
検証用のWindowsサーバーはADを構築しており、設定変更などが必要なときには、RDP接続していたのですが、面倒になってきたので、RSATを利用してWindowsクライアントからリモート管理することにしました。
思っていたより設定するのが面倒だったので備忘録です。
目次
やりたいこと
RSATとは
RSAT(リモートサーバー管理ツール)の説明は、下記を参照。
具体的なやりたいこと
今回の構成は以下のようになっています。
- WindowsクライアントのサーバーマネージャーからWindowsサーバーに接続したい
- AD、DNS、サーバーの基本部分の設定をリモートで設定したい
ハマったポイント
下記がハマる要因になりました。
- IPセグメントが異なっている
- クライアントはドメイン非参加、サーバーはドメイン参加している
環境
下記の環境で試しました。RSATもOSバージョンによって仕様が結構異なっていたので、ご注意ください。
- クライアント:Windows10 Pro バージョン1909
- サーバー:Windows Server 2019 バージョン1809
方法
Windowsサーバー側設定
WS-Management(WinRM)サービスの起動確認
Windowsサーバー側のWinRMサービスが起動していることを確認します。
Windows Server 2019であればデフォルト有効のはずですが念のため。
WinRMファイアーウォール設定
Windowsサーバーのファイアーウォールで「Windowsリモート管理(HTTP受信)」を許可しておきます。
IPアドレスのセグメントが異なる場合、パブリックファイアウォールのリモートアドレスのスコープがローカルサブネットだけになっているため、接続に失敗します。
下記のサイトが非常に参考になりました。
Windowsクライアント側設定
RSATインストール
WindowsクライアントにRSATをインストールします。Windows 10バージョン1809より前のクライアントOSでは、RSATを別途ダウンロードする必要がありましたが、今はWindows設定の画面からインストールが可能になっています。
「Windowsの設定」->「アプリ」をクリックします。
「オプション機能」をクリックします。
「機能の追加」をクリックします。
RSATで必要な機能をクリックして「インストール」をクリックします。
インストールが完了するとWindows管理ツールの中に項目が増えています。
今回は、下記の機能を入れました。
この後の確認で使うのは、「サーバーマネージャー」と「DNSサーバーツール」です。
- RSAT:サーバーマネージャー
- RSAT:Active Directory Domein Servicesおよびライトウェイトディレクトリサービス
- RSAT:Active Directory 証明書サービスツール
- RSAT:DHCPサーバーツール
- RSAT:DNSサーバーツール
- RSAT:グループポリシー管理ツール
WS-Management(WinRM)サービスの起動
クライアント側のWinRMサービスはデフォルト停止しています。
下記のように開始して、自動起動にしておきます。
TrastedHostsの追加
そのままだとWinRMが使えません。信頼しているホストとして、RSATで接続するサーバーを登録しておきます。
Windows PowerShellを管理者として実行します。
TrustedHostsを確認するとデフォルトでは何も登録されていません。
Get-Item WSMan:\localhost\Client\TrustedHosts
TrustedHostsに接続するホストを登録します。
Set-Item WSMan:\localhost\Client\TrustedHosts -Value (ホスト名 または IPアドレス または *)
再度確認するとホスト名が登録できていることが確認できます。
Get-Item WSMan:\localhost\Client\TrustedHosts
上記のSet-Item WSMan:は[信頼されたホスト]を強制的に上書きし、過去に登録済みの信頼済みのホストを消去します。過去に登録済みの信頼済みホストがあり、それを消去せずに追加したい場合は、 –Concatenate パラメーターを加えます。
参考のコマンド例になります。
信頼済みホストの登録(上書き)
Set-Item WSMan:\localhost\Client\TrustedHosts -Value (ホスト名 または IPアドレス または *)
信頼済みホストの登録(追加)
Set-Item WSMan:\localhost\Client\TrustedHosts -Value (ホスト名 または IPアドレス または *) –Concatenate
信頼済みホストの確認
Get-Item WSMan:\localhost\Client\TrustedHosts
信頼済みホストのクリア
Clear-Item WSMan:\localhost\Client\Trustedhosts
サーバーマネージャー起動用batを作成する
クライアンがドメイン非参加のため、Windowsメニューにある項目からRSATを利用するとするとアクセス権の問題でエラーになります。
ドメインアカウントの権限でサーバーマネージャーを起動して、接続できるようのbatファイルを作成します。
runasコマンドを使います。下記を記載したServerManager.cmdなどの任意のファイル名で保存します。
@echo off runas /netonly /user:<domain>\<username> "%windir%\system32\ServerManager.exe"
接続して確認する
作成したServerManager.cmdを右クリック→「管理者として実行」をクリックします。
ダブルクリックでは起動しません。
batファイルに設定したドメインアカウントのパスワードを入力します。
サーバーマネージャーでWindowsサーバーに接続できました。
DNSの接続先の設定をするとちゃんと見えています。レコードの追加・削除も行えました。
参考
すでに導入済みのWindows10で1909にアップデートしたらサーバー管理ツールが消える場合があるようですので、ご注意ください。
まとめ
batファイルを管理者から実行しないといけない・毎度パスワード入力しないといけない、という部分は面倒ですが、RDP接続よりは圧倒的に楽なのでまぁよしとしました。
パスワード入力を自動入力するスクリプトもあるようですが、面倒だったので試していません。
全部同じドメインに所属できてたらもっと楽なのになぁ(´・ω・`)