首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Session和CredSSP错误使用CredSSP

使用Session和CredSSP错误使用CredSSP
EN

Stack Overflow用户
提问于 2014-04-07 09:41:33
回答 1查看 6.2K关注 0票数 4

我使用Windows8.1企业级64位和Powershell 4.0。

我希望执行powershell远程处理并使用身份验证CredSSP。

我打开控制台Powershell,以管理员身份运行,并执行Enter-PSSession命令连接到远程计算机。

但我在联系上出了差错。

代码语言:javascript
复制
PS C:\Documents and Settings\kiquenet> Enter-PSSession -ComputerName DC -credential devrsg.com\Administrator

无论如何,我测试来自Windows和Windows 7的命令,并且连接正常。

代码语言:javascript
复制
PS C:\Documents and Settings\kiquenet> Enter-PSSession -ComputerName DC -credential devrsg.com\Administrator
[dc]: PS C:\Users\Administrator\Documents> exit

现在,我在Windows8.1中进行测试。

我测试命令enable-psremoting并得到错误:

代码语言:javascript
复制
PS C:\Windows\system32> Enable-PSRemoting -force

WinRM ya está configurado para recibir solicitudes en este equipo.
WinRM has been updated to receive requests.
Set-WSManQuickConfig : <f:WSManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2"
Machine="localhost"><f:Message><f:ProviderFault provider="Config provider"
path="%systemroot%\system32\WsmSvc.dll"><f:WSManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault"
Code="2" Machine="MYCOMPUTERW8.mycompany.net"><f:Message>Unable to check the status of the firewall.
</f:Message></f:WSManFault></f:ProviderFault></f:Message></f:WSManFault>
En línea: 69 Carácter: 17
+                 Set-WSManQuickConfig -force
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Set-WSManQuickConfig], InvalidOperationException
    + FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.SetWSManQuickConfigCommand

使用Enable-PSRemoting -force -SkipNetworkProfileCheck命令相同的错误。

我测试命令winrm 并得到错误:

代码语言:javascript
复制
PS C:\Windows\system32> winrm quickconfig  -force
WinRM service is already running on this machine.
WSManFault
    Message
        ProviderFault
            WSManFault
                Message = Unable to check the status of the firewall.

Nº de error:  -2147024894 0x80070002
The system cannot find the file specified.

我在Windows8.1中禁用了SmartScreen和防火墙。(我已禁用赛门铁克端点保护)

有什么建议吗?

最新情况:

我测试这些逗号:

代码语言:javascript
复制
PS C:\> Enable-PSRemoting -SkipNetworkProfileCheck -Force

PS C:\>Set-NetFirewallRule –Name "WINRM-HTTP-In-TCP-PUBLIC" –RemoteAddress Any

但我错了:

代码语言:javascript
复制
PS C:\Windows\system32> Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
Set-NetFirewallRule : No se encontraron objetos MSFT_NetFirewallRule cuya propiedad 'InstanceID' sea igual a
'WINRM-HTTP-In-TCP-PUBLIC'. Compruebe el valor de la propiedad e inténtelo de nuevo.
En línea: 1 Carácter: 1
+ Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (WINRM-HTTP-In-TCP-PUBLIC:String) [Set-NetFirewallRule], CimJobException
    + FullyQualifiedErrorId : CmdletizationQuery_NotFound_InstanceID,Set-NetFirewallRule

参考资料:http://technet.microsoft.com/en-us/library/hh849694.aspx

更新2

现在,我执行Net (Windows防火墙服务),并得到这个错误

代码语言:javascript
复制
Enter-PSSession -ComputerName DC -credential dersg.com\Administrator
Enter-PSSession : Connecting to remote server DC failed with the following error message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
En línea: 1 Carácter: 1
+ Enter-PSSession -ComputerName DC -credential devrsg.com\Administrator
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (DC:String) [Enter-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

更新3。

我执行这个命令(https://stackoverflow.com/a/22816386/206730)

代码语言:javascript
复制
Set-PSSessionConfiguration -ShowSecurityDescriptorUI -Name Microsoft.PowerShell

现在,我执行命令,一切都好。

代码语言:javascript
复制
PS C:\Documents and Settings\kiquenet> Enter-PSSession -ComputerName DC -credential devrsg.com\Administrator
[dc]: PS C:\Users\Administrator\Documents> exit

现在,我在服务器和客户机中启用了CredSSP:

代码语言:javascript
复制
Enable-WSManCredSSP -Role Server –Force

Enable-WSManCredSSP -Role Client -DelegateComputer * -Force

现在,我使用CredSSP测试命令:

代码语言:javascript
复制
$serverName = "DC"
$username = "devrsg\Administrator"
$password = "xxxxxx"   

$adjPwd = $password | ConvertTo-SecureString -asPlainText -Force
$testCred = (New-Object System.Management.Automation.PSCredential($username,$adjPwd))   

$scriptBlock = {
  Write-Host ("hello, world: {0}, {1}" -f $env:USERNAME, (hostname))
}

Invoke-Command $scriptBlock -computername $serverName -credential $testCred  -Authentication Credssp

我得到了一个错误:

代码语言:javascript
复制
PS C:\> .\testRemoteCredSSP.ps1
[DC] Error de conexión al servidor remoto DC. Mensaje de error: El cliente WinRM no puede procesar la solicitud. Una
directiva de equipo no permite delegar credenciales de usuario en el equipo de destino porque éste no es de confianza.
La identidad del equipo de destino se puede comprobar si configura el servicio WSMAN para usar un certificado válido
con el siguiente comando: winrm set winrm/config/service '@{CertificateThumbprint="<huellaDigital>"}'  O bien puede
comprobar en el Visor de eventos si hay un evento que especifique que no se pudo crear el siguiente SPN:
WSMAN/<FQDNdelEquipo>. Si encuentra este evento, puede crear manualmente el SPN con setspn.exe .  Si el SPN existe,
pero CredSSP no puede usar Kerberos para validar la identidad del equipo de destino y desea permitir la delegación de
credenciales de usuario en el equipo de destino, use gpedit.msc y mire la siguiente directiva: Configuración del
equipo -> Plantillas administrativas -> Sistema -> Delegación de credenciales -> Permitir credenciales nuevas con
autenticación solo NTLM de servidor.  Compruebe que esté habilitada esta opción y configurada con el correspondiente
SPN para el equipo de destino. Por ejemplo, para un nombre de equipo de destino "miservidor.dominio.com", el SPN puede
ser alguno de los siguientes: WSMAN/miservidor.dominio.com o WSMAN/*.dominio.com. Pruebe de nuevo la solicitud después
de realizar estos cambios. Para obtener más información, consulte el tema de la Ayuda about_Remote_Troubleshooting.
    + CategoryInfo          : OpenError: (DC:String) [], PSRemotingTransportException
    + FullyQualifiedErrorId : -2144108124,PSSessionStateBroken

英文电文:

代码语言:javascript
复制
Enter-PSSession : Connecting to remote server failed with the following error me
ssage : The WinRM client cannot process the request. 
A computer policy does not allow the delegation of the user credentials to the target computer because the computer is not trusted. The identity of the target computer can be verified if you configure the WSMAN service to use a valid certificate using the following command: winrm set winrm/config/service '@{CertificateThumbprint="<thumbprint>"}' 

Or you can check the Event Viewer for an event that specifies that the following SPN could not be created: WSMAN/<computerFQDN>. If you find this event, you can manually create the SPN using setspn.exe .  

If the SPN exists, but CredSSP can not use Kerberos to validate the identity of the target computer and you still want to allow the delegation of the user credentials to the target computer, use gpedit.msc and look at the following policy: Computer Configuration -> Administrative Templates -> System -> Credentials Delegation -> Allow Fresh Credentials with NTLM-only Server Authentication.  

Verify that it is enabled and configured with an SPN appropriate for the target computer. 
For example, for a target computer name "myserver.domain.com", the SPN can be one of the following: WSMAN/myserver.domain.com or WSMAN/*.domain.com. 

Try the request again after these changes. 
    For more information, see the about_Remote_Troubleshooting Help topic.
EN

回答 1

Stack Overflow用户

发布于 2017-04-29 20:32:17

CredSSP不会将您的凭据发送到它不信任的计算机,您可以通过两种方式向远程服务器添加信任。

  1. 在管理模板/系统/凭据委托中设置GPO设置/允许将新凭据委托给服务器(WSMAN/dc.domain.com)或域中所有内容的通配符(WSMAN/*.domain.com)。
  2. 获取该机器的证书拇指指纹并运行winrm set winrm/config/service '@{CertificateThumbprint="<thumbprint>"}'。您可以通过运行:Get-ChildItem "Cert:\LocalMachine\Remote Desktop\"获得服务器的证书拇指指纹
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22908738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档