新しいセッションを(New-PSSessionで)作成できる必要がある仮想マシンを起動しようとしています。もちろん、非常に魅力的な about_Remote_Troubleshooting は私の常連です!
基本的なマシン(Win 8.1 Enterprise)を起動した後:
mycompany.com
です。dev.mycompany.com
があるため、開発者はサンドボックスで遊ぶことができます。dev.mycompany.com
に追加しました。my-vm\msorens
があります。これはローカルマシンのAdministratorsグループにあります。最初のハードル:
クロスドメインの問題のため、New-PSSession
のみを実行しようとして失敗し、アクセスが拒否されました。上記のトラブルシューティングページによると:
別のドメインのユーザーがローカルコンピューターのAdministratorsグループのメンバーである場合、ユーザーは管理者特権でリモートからローカルコンピューターに接続できません。
私はこれが真実であるとは確信していません(ドメインの問題における私の未経験のため)が、その救済策のレシピを適用すると、基本的なNew-PSSession
が機能するようになりました:
New-ItemProperty `
-Name LocalAccountTokenFilterPolicy `
-Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System `
-PropertyType DWord `
-Value 1
(これは、サンドボックスVMであるため、安全性は低くなりますが、問題ありません。)
2番目のハードル:
上記のパッチを配置すると、次のいずれかを正常に実行できます。
PS> New-PSSession
PS> New-PSSession -ComputerName localhost
PS> New-PSSession -ComputerName my-vm
ただし、実際に必要なのは、マシンのFQDNを指定することです。
PS> New-PSSession -ComputerName my-vm.dev.mycompany.com
資格情報がないために失敗します。これは私たちにこれをもたらします:
PS> New-PSSession -ComputerName my-vm.dev.mycompany.com -Credential (Get-Credential)
ローカル(my-vm)資格情報を試したところ、WinRMが要求を処理できなくなりました。使用可能なログオンサーバーがありません。
私は会社のドメイン資格情報を試しました(mycompany.comがドメインではないことに注意してくださいVMは実際にはdev.mycompany.comにあります)。その結果アクセスは拒否されました。
これを機能させる方法はありますか?
職場でも同じ状況です。ここでは、新しい同僚のコンピューターで実行するいくつかの手順を説明します。これにより、これらのサーバーに接続できるようになり、ドメインの外にいます。
クライアント側
winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
サーバー側
Enable-PSRemoting -Force
winrm quickconfig
HTTPSの場合
winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="_";CertificateThumbprint="_"}
HTTPの場合
winrm create winrm/config/Listener?Address=*+Transport=HTTP
でテスト
Test-WsMan ComputerName
Test-WsMan ComputerName -UseSSL
でセッションを作成する
New-PSSession -ComputerName Computer1 -Credential (Get-Credential)
もちろん、サーバーがPowerShellリモート処理ポートでリッスンできるようにファイアウォールを構成する必要があります。
編集:PowerShellでTrustedHostsを設定
またはPowerShellを使用(管理者として)
Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value "Computer1,Computer2"
そしてチェックしてください(そのために管理者は必要ありません)
Get-Item WSMan:\localhost\Client\TrustedHosts