github編集

WinRMの設定

WinRMの設定例

概要

サーバーおよび環境の設定は、お客様の責任で行っていただく必要があります。参考およびテスト用途として、以下のPowerShellスクリプトを対象マシンで実行することで、自己署名証明書を使用したWinRMを有効化できます。本番環境では、公開認証局 (CA) によって発行された証明書を作成することを推奨します。

# WinRMを有効化
Set-NetConnectionProfile -NetworkCategory Private
winrm quickconfig -force
Enable-PSRemoting -force

# 非SSLトラフィックを許可(ポート5985)
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
winrm set winrm/config/service/auth '@{Basic="true"}'
winrm set winrm/config/client/auth '@{Basic="true"}'

# SSL用の証明書を作成(ポート5986)
$Hostname = [System.Net.Dns]::GetHostByName($env:computerName).HostName
$Thumbprint = (New-SelfSignedCertificate -Subject "CN=$Hostname" -TextExtension '2.5.29.37={text}1.3.6.1.5.5.7.3.1').Thumbprint
$A = '@{Hostname="'+$Hostname+'"; CertificateThumbprint="'+$Thumbprint+'"}'
winrm create winrm/config/Listener?Address=*+Transport=HTTPS $A

# ファイアウォール規則
New-NetFirewallRule -DisplayName "WinRM" -Group "Windows Remote Management" -Program "System" `
  -Protocol TCP -LocalPort "5985" -Profile Domain,Private
New-NetFirewallRule -DisplayName "WinRM" -Group "Windows Remote Management" -Program "System" `
  -Protocol TCP -LocalPort "5985" -Profile Public
New-NetFirewallRule -DisplayName "WinRM Secure" -Group "Windows Remote Management" -Program "System" `
  -Protocol TCP -LocalPort "5986" -Profile Domain,Private
New-NetFirewallRule -DisplayName "WinRM Secure" -Group "Windows Remote Management" -Program "System" `
  -Protocol TCP -LocalPort "5986" -Profile Public

以下は、このスクリプトがWindowsマシン上でWinRMを構成するために実行する処理の概要です。

  1. ネットワーク接続プロファイルを「プライベート」に設定

  1. WinRMを構成して有効化

  1. ポート5985での非SSL (暗号化なし) 通信を許可

  1. ポート5986での暗号化通信 (HTTPS) 用に自己署名SSL証明書を作成

  1. Windowsファイアウォールで受信通信を許可するルールを作成 (ポート5985: 非SSL、ポート5986: SSL)

このスクリプトを実行すると、WinRMは非暗号化通信 (ポート5985) および暗号化通信 (ポート5986) の両方によるリモート接続を許可するよう構成されます。また、これらのポートへの受信通信を許可するWindowsファイアウォールルールも作成されます。

Windowsサーバーからは、PowerShellを使用して対象マシンへの接続をテストできます。

最終更新