サーバーと環境の設定はお客様側の作業になります。参照とテスト用に、以下のPowerShellスクリプトをターゲットマシンで実行し、自己署名証明書でWinRMを有効にすることができます。本番環境では、パブリック認証局を使用して証明書を作成することをお勧めします。
コピー # 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
コピー ```powershell
winrm quickconfig -force
Enable-PSRemoting -force
```
コピー ```powershell
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
winrm set winrm/config/service/auth '@{Basic="true"}'
winrm set winrm/config/client/auth '@{Basic="true"}'
```
コピー ```powershell
$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
```
コピー ```powershell
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
```
このスクリプトを実行すると、WinRMは、暗号化されていないリモート接続(ポート5985)と暗号化されたリモート接続(ポート5986)の両方を許可するように設定されます。さらに、これらのポートで受信トラフィックを許可するWindowsファイアウォール規則が作成されます。
コピー Test-NetConnection -ComputerName <host> -Port <port>