web-dev-qa-db-ja.com

ドメイン境界を越えたNew-PSSession

新しいセッションを(New-PSSessionで)作成できる必要がある仮想マシンを起動しようとしています。もちろん、非常に魅力的な about_Remote_Troubleshooting は私の常連です!

基本的なマシン(Win 8.1 Enterprise)を起動した後:

  • 私の会社のプライマリドメインは、たとえばmycompany.comです。
  • 開発ドメインdev.mycompany.comがあるため、開発者はサンドボックスで遊ぶことができます。
  • 新しいVM(my-vmという名前)を開発ドメインdev.mycompany.comに追加しました。
  • 新しいVMにローカルアカウントmy-vm\msorensがあります。これはローカルマシンのAdministratorsグループにあります。

最初のハードル:

クロスドメインの問題のため、New-PSSessionのみを実行しようとして失敗し、アクセスが拒否されました。上記のトラブルシューティングページによると:

別のドメインのユーザーがローカルコンピューターのAd​​ministratorsグループのメンバーである場合、ユーザーは管理者特権でリモートからローカルコンピューターに接続できません。

私はこれが真実であるとは確信していません(ドメインの問題における私の未経験のため)が、その救済策のレシピを適用すると、基本的な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にあります)。その結果アクセスは拒否されました

これを機能させる方法はありますか?

8
Michael Sorens

職場でも同じ状況です。ここでは、新しい同僚のコンピューターで実行するいくつかの手順を説明します。これにより、これらのサーバーに接続できるようになり、ドメインの外にいます。

クライアント側

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
8
dhcgn