跨域的New-PSSession

我正在尝试启动一个需要能够创build新会话(使用New-PSSession)的虚拟机。 当然,高度参与的关于Remote_Troubleshooting是我的不变的伴侣!

启动基本机器(Win 8.1 Enterprise)后:

  • 我公司的主要领域是mycompany.com
  • 我们有一个开发域dev.mycompany.com以便开发人员可以使用沙箱。
  • 我将新的VM(名为my-vm)添加到开发域dev.mycompany.com
  • 我在本地计算机上的Administrators组中的新VM, my-vm\msorens上有本地帐户。

第一个障碍:

试图运行只是New-PSSession失败,由于跨域问题的访问被拒绝。 根据上面引用的疑难解答页面:

当另一个域中的用户是本地计算机上的Administrators组的成员时,用户无法使用pipe理员权限远程连接到本地计算机。

我不相信这是真实的(由于我在域问题上经验不足),但是应用这个补救措施的配方允许基本的New-PSSession工作:

 New-ItemProperty ` -Name LocalAccountTokenFilterPolicy ` -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System ` -PropertyType DWord ` -Value 1 

(而且,虽然不那么安全,但是很好,因为它只是一个沙盒虚拟机。)

第二个障碍:

有了上面的补丁,我可以成功地做到这些:

 PS> New-PSSession PS> New-PSSession -ComputerName localhost PS> New-PSSession -ComputerName my-vm 

但是,我的实际需要是给机器的FQDN:

 PS> New-PSSession -ComputerName my-vm.dev.mycompany.com 

这失败了,因为缺less凭据。 这给我们带来了这个:

 PS> New-PSSession -ComputerName my-vm.dev.mycompany.com -Credential (Get-Credential) 

我尝试了我的本地(my-vm)凭据,导致WinRM无法处理请求; 没有可用的login服务器

我已经尝试了我的公司域凭据(请注意,mycompany.com不是虚拟机实际上在dev.mycompany.com上的域),导致Access被拒绝

有没有办法做到这一点?

在工作中,我们有相同的情况。 在这里,我们在新的同事计算机上做的一些步骤,以便他们能够连接到这些服务器如何超出我们的领域。

在客户端

 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 

用testing

 Test-WsMan ComputerName Test-WsMan ComputerName -UseSSL 

创build一个会话

 New-PSSession -ComputerName Computer1 -Credential (Get-Credential) 

当然,你需要configuration你的防火墙让服务器监听PowerShell远程端口。

编辑:使用PowerShell设置TrustedHosts

或与PowerShell(作为pipe理员)

 Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value "Computer1,Computer2" 

并检查(不需要pipe理员)

 Get-Item WSMan:\localhost\Client\TrustedHosts