跨域边界的New-PSSession


8

我正在尝试启动一个需要能够创建新会话(使用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由于跨域问题,尝试运行只是失败,访问被拒绝。根据上面引用的故障排除页面:

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

我不确信这是真的(由于我在域问题上的经验不足),但是应用该补救措施的配方可以使基本New-PSSession方法起作用:

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

(而且,虽然它的安全性较差,但它只是个沙盒VM,所以很好。)

第二关:

有了上述补丁,我可以成功完成以下任何一项操作:

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上的域),这导致Access被拒绝

有没有办法使这项工作?


您是否尝试过指定UPN后缀?myuser@mydom.com
red888 2014年

1
dev.mycompany.com域是否信任mycompany.com域?如果没有,您可能无法连接。另外,我们的环境与您的环境非常相似。我的主要公司帐户是VM上的管理员,该VM在我们的开发域中,并且能够登录到该VM。
溅出了比特

Answers:


8

在工作中,我们有同样的情况。在这里,我们在新的同事计算机上执行一些步骤,以使它们能够像在我们域外一样连接到这些服务器。

在客户端

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

1
或者,您可以执行Enter-PSSession来代替New-PSSession。另外,我只有这一行-winrm set winrm / config / client'@ {TrustedHosts =“ Computer1”}'-因为我以前从远程处理了域内工作。
Gomibushi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.