はじめに
AWSでWindowsを安く運用する方法を考えていたところ、Server Coreで起動すればメモリを最小限にできると気づきました。しかし、コマンドで操作するのも面倒臭いので、サーバーマネージャでリモート操作できないか探していたところ、Qiitaの以下の記事を見つけました。
しかし、試したところ手元の環境ではうまく接続できなかったため、試行錯誤した結果をまとめました。
クライアント側で必要な条件
WORKGROUP環境のServer Coreマシン(以下リモートサーバー)に対してサーバーマネージャでアクセスするには、クライアントマシンで以下の条件を満たす必要があるようです。
- リモートサーバーの名前解決
- TrustedHostsにリモートサーバーのホスト名を登録
- 資格情報マネージャーでパスワードを登録
リモートサーバーの名前解決
今回の検証では、IPアドレスを指定してリモート管理を実施することができませんでした。サーバーマネージャでサーバーを追加する際に、IPアドレスで検索を実施できますが、逆引きしたホスト名(画像赤枠)に対してアクセスするような挙動となるようです。
DNSサーバーを変更して名前解決ができない環境にしたところ、以下のメッセージが表示されました。「はい」を押して続行しましたが、アクセスが拒否されてしまいました。名前解決ができない環境ではhostファイルにIPアドレスとホスト名の対応を記載しておく必要があるようです。
ちなみに、ホスト名はリモートサーバーのコンピュータ名と一致する必要はないです。hostsファイルに適当な名前を記載して、後述の2条件をクリアしたら接続できました。
TrustedHostsにリモートサーバーのホスト名を登録
Qiitaの記事にも記載のあったTrustedHostの設定については、サーバーの追加時に表示されるホスト名(画像赤枠)に対して設定する必要があります。設定が間違っている場合は、WinRMのネゴシエート認証エラーと表示されます。
表示画像のマシン(TESTAD)をTrustedHostsに登録するには、以下のPowerShellコマンドを適用します。TESTAD
の部分を任意のコンピュータ名に置き換えてください。
Enable-PSRemoting -SkipNetworkProfileCheck
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'TESTAD'
資格情報マネージャーでパスワードを登録
上記の設定に加えて、リモートサーバーのパスワードを事前に資格情報マネージャに登録しておく必要があります。
サーバー側の設定(ファイアウォールの無効化)
AWSにインスタンスを2台立てて検証した際は、ここまで設定した内容で接続ができましたが、AWSのインスタンスに対しVPN越しにWindows10から操作しようとした際は、サーバー側のファイアウォールが邪魔してアクセスできませんでした。そのため、リモートサーバー側で以下のPowerShellコマンドを実行し、ファイアウォールを無効化しています。
Get-NetFirewallProfile | Set-NetFirewallProfile -Enabled false