SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Azure 仮想マシンに 5985 を使用して PowerShell で接続

without comments

現状の、Azure の仮想マシン (Virtual Machine) ではデフォルトで PowerShell 用に TCP 5986 による、SSL を使用した PSRemoting による接続が可能となっています。

デフォルトでは、TCP 5985 を使用した SSL を使用しない接続ができないのでこれを Enable-PSRemoting を再実行しないで設定する方法を書いてみたいと思います。

SSL を使用した接続については Azureの仮想マシンへリモートでコマンドを投げる / PowerShellでリモート処理 がとても参考になります。
以下の情報も確認しておくとよいかと。
Configuring WINRM for HTTPS
Hyper-V ホストでの WinRM の構成
How to create a winrm listener on a custom port
Ws-management では、Windows 7 と Windows サーバー 2008 R2 のセキュリティで保護されたポートの構成の詳細について
[WinRM/WinRS] 簡単リモート管理!WMI の代わりに使ってみませんか?
イベントサブスクリプションに関して
# イベントサブスクリプションも WinRM を使用しているので、似たような動作となります。

仮想マシンにはデフォルトでは非 SSL を使用したエンドポイントのポートは要されていませんので、TCP 5985 を使用したエンドポイントの設定を追加します。
image

また、Windows ファイアウォールの設定として、TCP 5985 の設定がデフォルトで行われていますが、パブリックプロファイルのスコープについてはローカルサブネットのみが許可されているので、これについてはどこからも接続ができるようにしておきます。
imageimage

これでネットワーク的に仮想マシンに TCP 5985 で接続ができるような経路が設定できました。
あとは TCP 5985 のリスナーを作成します。

仮想マシンのデフォルトの状態では、TCP 5986 を使用した SSL のリスナーのみが作成されている状態となります。

winrm e winrm/config/listener
または
Get-Item WSMan:localhostListener* | fl *

image

仮想マシンにはデフォルトでパブリックな DNS 名の証明書がコンピューターアカウントの証明書として追加されており、その証明書を使用して SSL を使用したリスナーが作成されています。

それでは、以下のコマンドを実行して、SSL を使用しないポートを追加してみます。

Winrm create winrm/config/listener?Address=*+Transport=HTTP
または、
New-WSManInstance winrm/config/Listener -SelectorSet @{Address="*";Transport="http"}

これで SSL を使用せずに接続するための設定が完了しました。

あとは接続元の環境の TrustedHosts の設定をして、仮想マシンに接続をします。

# TrsutedHosts の設定を取得
Get-Item WSMan:localhostClientTrustedHosts
# TrustedHosts を設定
Set-Item WSMan:localhostClientTrustedHosts -Value * -Force
# TrustedHosts の設定をクリア
# Clear-Item WSMan:localhostClientTrustedHosts
$cred = Get-Credential
Enter-PSSession -ComputerName KinmugiPSTest.cloudapp.net -Credential $cred

 

この辺のポイントはオンプレミスで接続をする場合のチェックポイントと同じですね。

Written by Masayuki.Ozawa

11月 16th, 2014 at 9:02 pm

Leave a Reply