以IP地址作为目标的Powershell远程处理

我在我的Server 2008 R2上成功启用了PSRemoting。 我可以使用主机名作为目标在同一个networking中执行远程控制。

当我试图从任何计算机(在networking内或从另一个networking(例如通过VPN))使用IP地址作为目标时,我失败了。 我希望能够通过我的VPN连接使用远程处理,因为主机名无法parsing,所以必须使用IP地址。

我不想将名称添加到我的hosts文件中,因为我们的客户机上有一些其他的服务器具有相同的DNS名称,我不想再删除并插入name-ip-address-association然后再次。

我希望有人能告诉我如何允许通过IP调用psremoting目标。

编辑 :为了更具体,我想能够运行这个:

Enter-PSSession -Computername 192.168.123.123 -credentials $cred 

但我只能运行该命令,如果我传递一个主机名到“ -Computername

编辑2
当我尝试使用ip而不是主机名(来自内部networking)login时,我收到以下errormessage:

 Enter-PSSession : Connecting to remote server failed with the following error message : The WinRM client cannot process the request. Default authentication may be used with an IP address under the following conditions: the transport is HT TPS or the destination is in the TrustedHosts list, and explicit credentials are provided. Use winrm.cmd to configure T rustedHosts. Note that computers in the TrustedHosts list might not be authenticated. For more information on how to se t TrustedHosts run the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic. 

EDIT3:
我知道WSMan的信任主机设置,但这似乎不成问题。 它已经设置为“*”(我启用远程处理后就这样做了),但仍然无法使用ip作为目标计算机名连接到该服务器,但是我可以使用主机名作为目标计算机名。 似乎有像在IIS中的绑定,阻止侦听器侦听目标IP地址而不是主机名的请求。 但是IIS没有安装。 我不知道在哪里寻找这样的设置。

2011-07-12更新:
好吧,我认为trustedhosts设置不是问题,因为我可以通过主机名从我们的DC连接,但是如果我使用计算机参数的目的地的IP地址则不行。
我认为,问题一定是听众。 也许监听器不会收到针对destination-ip而不是destination-hostname的请求。 但我不知道如何改变这一点。

错误消息给你你需要的大部分。 这不仅仅是TrustedHosts列表。 它是说为了使用默认的authenticationscheme的IP地址,你还必须使用HTTPS(这是不是默认configuration),并提供明确的凭据。 我可以告诉你至less不使用SSL,因为你没有使用-UseSSL开关。

请注意,SSL / HTTPS默认没有configuration – 这是您必须执行的额外步骤。 你不能只添加-UseSSL。

默认的身份validation机制是Kerberos,它希望看到在AD中出现的真实主机名。 不是IP地址,不是DNS CNAME昵称。 有些人会启用基本身份validation,但是您也应该设置HTTPS,否则您会以明文方式传递凭证。 启用-PSRemoting只设置HTTP。

将名称添加到主机文件不起作用。 这不是名称parsing的问题, 这是关于如何进行计算机之间的相互authentication。

另外,如果涉及这个连接的两台计算机不在同一个AD域中,那么默认的authentication机制将不起作用。 有关configuration非域名和跨域身份validation的信息,请参阅“有关重新configuration查询的帮助”。

http://technet.microsoft.com/en-us/library/dd347642.aspx上的文档;

 HOW TO USE AN IP ADDRESS IN A REMOTE COMMAND ----------------------------------------------------- ERROR: The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. The ComputerName parameters of the New-PSSession, Enter-PSSession and Invoke-Command cmdlets accept an IP address as a valid value. However, because Kerberos authentication does not support IP addresses, NTLM authentication is used by default whenever you specify an IP address. When using NTLM authentication, the following procedure is required for remoting. 1. Configure the computer for HTTPS transport or add the IP addresses of the remote computers to the TrustedHosts list on the local computer. For instructions, see "How to Add a Computer to the TrustedHosts List" below. 2. Use the Credential parameter in all remote commands. This is required even when you are submitting the credentials of the current user. 

尝试这样做:

 Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force 

这些人已经给出了简单的解决scheme,这将是你应该看看的帮助 – 这是好的,一看就像很多,但它实际上是快速阅读:

 get-help about_Remote_Troubleshooting | more 

我testing你的断言在我的基础设施IP地址是不是问题以下为我工作:

 PS C:\Users\JPB> hostname JPBCOMPUTER PS C:\Users\JPB> Enter-PSSession -ComputerName 192.168.183.100 -Credential $cred [192.168.183.100]: PS C:\Users\jpb\Documents> [192.168.183.100]: PS C:\Users\jpb\Documents> hostname WM2008R2ENT 

如果您尝试在VPN上工作,则最好在到服务器的路上查看防火墙设置。 Windows远程pipe理的安装和configuration可以帮助您。 WinRM正在等待的TCP端口是:

WinRM 1.1和更早版本:默认的HTTP端口是80。

WinRM 2.0:默认的HTTP端口是5985。


编辑:根据你的错误,你可以在你的电脑上testing这个:

 Set-Item WSMan:\localhost\Client\TrustedHosts *