title: Error PSRemoting using Session and CredSSP
body: <p>I use Windows 8.1 Enterprise 64 bit and Powershell 4.0.</p>
  
  <p>I want execute powershell remoting and using authentication CredSSP.</p>
  
  <p>I open Console Powershell, run as Administrator, and execute <strong>Enter-PSSession</strong> command to connect to remote computer.</p>
  
  <p>But I get error about connection.</p>
  
  <pre><code>PS C:\Documents and Settings\kiquenet&gt; Enter-PSSession -ComputerName DC -credential devrsg.com\Administrator
  </code></pre>
  
  <p>Anyways, I test command from Windows XP and Windows 7, and connection is OK.</p>
  
  <pre><code>PS C:\Documents and Settings\kiquenet&gt; Enter-PSSession -ComputerName DC -credential devrsg.com\Administrator
  [dc]: PS C:\Users\Administrator\Documents&gt; exit
  </code></pre>
  
  <p>Now, I test in Windows 8.1.</p>
  
  <p>I test command <strong>enable-psremoting</strong> and I get error:</p>
  
  <pre><code>PS C:\Windows\system32&gt; Enable-PSRemoting -force
  
  WinRM ya está configurado para recibir solicitudes en este equipo.
  WinRM has been updated to receive requests.
  Set-WSManQuickConfig : &lt;f:WSManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2"
  Machine="localhost"&gt;&lt;f:Message&gt;&lt;f:ProviderFault provider="Config provider"
  path="%systemroot%\system32\WsmSvc.dll"&gt;&lt;f:WSManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault"
  Code="2" Machine="MYCOMPUTERW8.mycompany.net"&gt;&lt;f:Message&gt;Unable to check the status of the firewall.
  &lt;/f:Message&gt;&lt;/f:WSManFault&gt;&lt;/f:ProviderFault&gt;&lt;/f:Message&gt;&lt;/f:WSManFault&gt;
  En línea: 69 Carácter: 17
  +                 Set-WSManQuickConfig -force
  +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : InvalidOperation: (:) [Set-WSManQuickConfig], InvalidOperationException
      + FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.SetWSManQuickConfigCommand
  </code></pre>
  
  <p>Same error using the command <strong>Enable-PSRemoting -force -SkipNetworkProfileCheck</strong>.</p>
  
  <p>I test command <strong>winrm quickconfig</strong> and I get error:</p>
  
  <pre><code>PS C:\Windows\system32&gt; 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.
  </code></pre>
  
  <p>I have SmartScreen and Firewall disabled in my Windows 8.1. (I have Symantec Endpoint protection disabled)</p>
  
  <p>Any suggestions?</p>
  
  <p>update:</p>
  
  <p>I test those commads:</p>
  
  <pre><code>PS C:\&gt; Enable-PSRemoting -SkipNetworkProfileCheck -Force
  
  PS C:\&gt;Set-NetFirewallRule –Name "WINRM-HTTP-In-TCP-PUBLIC" –RemoteAddress Any
  </code></pre>
  
  <p>but I get error:</p>
  
  <pre><code>PS C:\Windows\system32&gt; 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
  </code></pre>
  
  <p>Reference: <a href="http://technet.microsoft.com/en-us/library/hh849694.aspx" rel="nofollow noreferrer">http://technet.microsoft.com/en-us/library/hh849694.aspx</a></p>
  
  <p>Update 2</p>
  
  <p>Now,I execute Net stop MPSSVC (Windows Firewall Service), and I get this error</p>
  
  <pre><code>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
  </code></pre>
  
  <p>Update 3.</p>
  
  <p>I execute this command (<a href="https://stackoverflow.com/a/22816386/206730">https://stackoverflow.com/a/22816386/206730</a>)</p>
  
  <pre><code>Set-PSSessionConfiguration -ShowSecurityDescriptorUI -Name Microsoft.PowerShell
  </code></pre>
  
  <p>Now, I execute the command and all is OK</p>
  
  <pre><code>PS C:\Documents and Settings\kiquenet&gt; Enter-PSSession -ComputerName DC -credential devrsg.com\Administrator
  [dc]: PS C:\Users\Administrator\Documents&gt; exit
  </code></pre>
  
  <p>Now, I enable CredSSP in server and in client:</p>
  
  <pre><code>Enable-WSManCredSSP -Role Server –Force
  
  Enable-WSManCredSSP -Role Client -DelegateComputer * -Force
  </code></pre>
  
  <p>Now, I test command using CredSSP:</p>
  
  <pre><code>$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
  </code></pre>
  
  <p>and I get the error:</p>
  
  <pre><code>PS C:\&gt; .\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="&lt;huellaDigital&gt;"}'  O bien puede
  comprobar en el Visor de eventos si hay un evento que especifique que no se pudo crear el siguiente SPN:
  WSMAN/&lt;FQDNdelEquipo&gt;. 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 -&gt; Plantillas administrativas -&gt; Sistema -&gt; Delegación de credenciales -&gt; 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
  </code></pre>
  
  <p>English message:</p>
  
  <pre><code>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="&lt;thumbprint&gt;"}' 
  
  Or you can check the Event Viewer for an event that specifies that the following SPN could not be created: WSMAN/&lt;computerFQDN&gt;. 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 -&gt; Administrative Templates -&gt; System -&gt; Credentials Delegation -&gt; 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.
  </code></pre>