尝试使用PowerShell New-PSSession命令连接到远程服务器时遇到问题。
我使用的命令是:
New-PSSession -ComputerName $MachineName -Credential $VmCred -Authentication Negotiate
其中$MachineName是远程服务器的主机名(而不是FQDN)(即“myserver”), $VmCred是我之前创build的凭证对象。
目标服务器是干净的安装,没有join域。 除了启用防火墙规则允许WinRM之外,安装后没有更改。
如果我在Windows Server 2012 R2(使用PowerShell 4)中的会话中运行PS-Command,而我是一个拥有高权限的pipe理员(但不是域pipe理员),则可以连接。 所以我知道,这在远程系统上不是问题,而是在本地系统上。 我的本地系统是使用PowerShell 5的Windows 7。在这里,我有我的常规非pipe理用户和本地pipe理员。 两者都是域帐户。 另外,在具有PowerShell 4和非Admin用户的Windows Server 2012 R2上,错误也是一样的。 如果我尝试在Windows 7上执行上面的命令,则会出现此错误(对不起,某些部分是德语):
New-PSSession : [MyServer] Connecting to remote server MyServer failed with the following error message : Der WinRM-Client kann die Anforderung nicht verarbeiten. Derzeit ist die Negotiate-Authentifizierung in der Clientkonfiguration deaktiviert. Ändern Sie die Clientkonfiguration, und wiederholen Sie die Anforderung. Wenn sich diese Anforderung auf die lokale Konfiguration bezieht, verwenden Sie einen der noch aktivierten Authentifizierungsmechanismen. Wenn Sie Kerberos verwenden möchten, geben Sie den lokalen Computernamen als das Remoteziel an. Wenn Sie die Standardauthentifizierung (Basic) verwenden möchten, Geben Sie den lokalen Computernamen als Remoteziel an, legen Sie die Standardauthentifizierung fest, und geben Sie den Benutzernamen und das Kennwort ein. For more information, see the about_Remote_Troubleshooting Help topic. At C:\Skripts\connect.ps1:12 char:26 + ... rmSession = New-PSSession -ComputerName $MachineName -Credential $VmC ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin gTransportException + FullyQualifiedErrorId : -2144108319,PSSessionOpenFailed
德国部分基本上告诉我,validation方法协商被禁用。
我在pipe理模板=> Windows组件=> Windows远程pipe理=> WinRM-Client / WinRM-Server中检查了本地策略什么都没configuration在这里,意味着协商启用。 如果我将策略设置为禁用身份validation方法为“禁用”,则无任何更改。 我检查了可以连接的服务器上的这些策略:没有configuration。
我尝试运行Enable-PSRemoting -Force ,出现以下错误:
Set-WSManQuickConfig : <f:WSManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2150858977" Machine="MyLocalComputer.FQDN"><f:Message>Der WinRM-Client kann die Anforderung nicht verarbeiten. Derzeit ist die Negotiate-Authentifizierung in der Clientkonfiguration deaktiviert. Ändern Sie die Clientkonfiguration, und wiederholen Sie die Anforderung. Wenn sich diese Anforderung auf die lokale Konfiguration bezieht, verwenden Sie einen der noch aktivierten Authentifizierungsmechanismen. Wenn Sie Kerberos verwenden möchten, geben Sie den lokalen Computernamen als das Remoteziel an. Wenn Sie die Standardauthentifizierung (Basic) verwenden möchten, Geben Sie den lokalen Computernamen als Remoteziel an, legen Sie die Standardauthentifizierung fest, und geben Sie den Benutzernamen und das Kennwort ein. </f:Message></f:WSManFault> At line:116 char:17 + Set-WSManQuickConfig -force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Set-WSManQuickConfig], InvalidOperationException + FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.SetWSManQuickConfigCommand
…想知道为什么Set-WSManQuickConfig在错误消息中。 好的,也许下一个提示。 试一试:
Set-WSManQuickConfig WinRM Quick Configuration Running the Set-WSManQuickConfig command has significant security implications, as it enables remote management through the WinRM service on this computer. This command: 1. Checks whether the WinRM service is running. If the WinRM service is not running, the service is started. 2. Sets the WinRM service startup type to automatic. 3. Creates a listener to accept requests on any IP address. By default, the transport is HTTP. 4. Enables a firewall exception for WS-Management traffic. 5. Enables Kerberos and Negotiate service authentication. Do you want to enable remote management through the WinRM service on this computer? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
点数5听起来不错。 所以“Y”,运行这个。 但不幸的是和上面一样的错误。 那么我应该如何启用协商身份validation,如果我无法启用它,因为它被禁用?
我search了很多最后两天,但无法find一个解决scheme/原因。 有人有一个想法如何解决这个问题?