Error de PSSession remota de Powershell: cuenta de administrador de dominio: error 0x80090322

Error de PSSession remota de Powershell: cuenta de administrador de dominio: error 0x80090322

Estoy solucionando un problema que tengo con un sensor PRTG que no recopila información de Windows Update de uno de nuestros servidores. Está utilizando WinRM y un comando remoto de PowerShell para hacerlo.

Servidor 1: servidor de emisión

Servidor 2: servidor de trabajo

Cuando intento usar Enter-PSSession -ComputerName Server1o winrs -r:Server1 dirprobar la conexión sigo recibiendo los siguientes errores:

PS C:\WINDOWS\system32> winrs -r:Server1 dir


Winrs error:WinRM cannot process the request. The following error with errorcode 0x80090322 occurred while using Kerberos authentication: An unknown security error occurred.
 Possible causes are:
  -The user name or password specified are invalid.
  -Kerberos is used when no authentication method and no user name are specified.
  -Kerberos accepts domain user names, but not local user names.
  -The Service Principal Name (SPN) for the remote computer name and port does not exist.
  -The client and remote computers are in different domains and there is no trust between the two domains.
 After checking for the above issues, try the following:
  -Check the Event Viewer for events related to authentication.
  -Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
 Note that computers in the TrustedHosts list might not be authenticated.
   -For more information about WinRM configuration, run the following command: winrm help config.

PS C:\WINDOWS\system32> Enter-PSSession -ComputerName Server1
Enter-PSSession : Connecting to remote server Server1 failed with the following error message : WinRM cannot process the request. The
following error with errorcode 0x80090322 occurred while using Kerberos authentication: An unknown security error occurred.
 Possible causes are:
  -The user name or password specified are invalid.
  -Kerberos is used when no authentication method and no user name are specified.
  -Kerberos accepts domain user names, but not local user names.
  -The Service Principal Name (SPN) for the remote computer name and port does not exist.
  -The client and remote computers are in different domains and there is no trust between the two domains.
 After checking for the above issues, try the following:
  -Check the Event Viewer for events related to authentication.
  -Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
 Note that computers in the TrustedHosts list might not be authenticated.
   -For more information about WinRM configuration, run the following command: winrm help config. For more information, see the
about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ Enter-PSSession -ComputerName Server1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (Server1:String) [Enter-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

Si ejecuto el comando en cualquiera de nuestros otros servidores, la conexión se realiza correctamente; este es el único que me causa problemas.

Si ejecuto el comando Enter-PSSessioncon el -Credentialconmutador con mi cuenta de usuario, aparece el mismo error, pero si ejecuto el comando y especifico la cuenta de administrador local del servidor, se conectará. Otros servidores funcionan bien.

PS C:\WINDOWS\system32> Enter-PSSession -ComputerName Server1 -Credential Server1\administrator
[Server1]: PS C:\Users\Administrator\Documents> exit

PS C:\WINDOWS\system32> Enter-PSSession -ComputerName Server1 -credential domain\myuser
Enter-PSSession : Connecting to remote server Server1 failed with the following error message : WinRM cannot process the request. The
following error with errorcode 0x80090322 occurred while using Negotiate authentication: An unknown security error occurred.
 Possible causes are:
  -The user name or password specified are invalid.
  -Kerberos is used when no authentication method and no user name are specified.
  -Kerberos accepts domain user names, but not local user names.
  -The Service Principal Name (SPN) for the remote computer name and port does not exist.
  -The client and remote computers are in different domains and there is no trust between the two domains.
 After checking for the above issues, try the following:
  -Check the Event Viewer for events related to authentication.
  -Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
 Note that computers in the TrustedHosts list might not be authenticated.
   -For more information about WinRM configuration, run the following command: winrm help config. For more information, see the
about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ Enter-PSSession -ComputerName Server1 -credential alpenaw2k.local\kemp ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (Server1:String) [Enter-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

PS C:\WINDOWS\system32> Enter-PSSession -ComputerName Server2
[Server2]: PS C:\Users\user\Documents> exit
PS C:\WINDOWS\system32>

Si ejecuto New-PSSessiondesde el servidor local obtendré el mismo error, a menos que especifique el -EnableNetworkAccessconmutador y luego se conectará. Esto me confunde. El visor de eventos me proporciona el ID de evento 161 relacionado con la autenticación del usuario y el error 142 para la sesión que no se pudo crear.

Si ejecuto Test-WSMandesde el servidor local y un host remoto, muestra que se está ejecutando.

Aquí está la configuración de WinRM y la configuración del oyente:

PS C:\Windows\system32> winrm get winrm/config
Config
    MaxEnvelopeSizekb = 500
    MaxTimeoutms = 60000
    MaxBatchItems = 32000
    MaxProviderRequests = 4294967295
    Client
        NetworkDelayms = 5000
        URLPrefix = wsman
        AllowUnencrypted = false
        Auth
            Basic = true
            Digest = true
            Kerberos = true
            Negotiate = true
            Certificate = true
            CredSSP = false
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        TrustedHosts = 10.10.10.142
    Service
        RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
        MaxConcurrentOperations = 4294967295
        MaxConcurrentOperationsPerUser = 1500
        EnumerationTimeoutms = 240000
        MaxConnections = 300
        MaxPacketRetrievalTimeSeconds = 120
        AllowUnencrypted = false
        Auth
            Basic = false
            Kerberos = true
            Negotiate = true
            Certificate = false
            CredSSP = false
            CbtHardeningLevel = Relaxed
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        IPv4Filter = *
        IPv6Filter = *
        EnableCompatibilityHttpListener = false
        EnableCompatibilityHttpsListener = false
        CertificateThumbprint
        AllowRemoteAccess = true
    Winrs
        AllowRemoteShellAccess = true
        IdleTimeout = 7200000
        MaxConcurrentUsers = 2147483647
        MaxShellRunTime = 2147483647
        MaxProcessesPerShell = 2147483647
        MaxMemoryPerShellMB = 2147483647
        MaxShellsPerUser = 2147483647

PS C:\Windows\system32> winrm enumerate winrm/config/listener
Listener
    Address = *
    Transport = HTTP
    Port = 5985
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 10.10.10.87, 127.0.0.1, ::1, fe80::4579:db85:c9cb:ead0%6

Otras cosas que he probado:

  • No tengo ninguna configuración de GPO para WinRM.
  • Eliminé y volví a crear al oyente.
  • Restablecí la configuración de WinRM varias veces.
  • El Firewall avanzado de Windows está deshabilitado para redes públicas, privadas y de dominio.
  • Revisé los Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUIpermisos y los privilegios parecen estar bien.
  • He utilizado direcciones IP en lugar de nombres de host con los mismos resultados.
  • Agregué mi computadora a la lista de hosts confiables y no funciona. Sin embargo, esto no debería ser necesario ya que ambas computadoras están en el mismo dominio.
  • Se ejecutó Enable-PSRemoting -Force(aunque esto debería ser innecesario ya que WinRM está habilitado de forma predeterminada para Server 2012 y posteriores).
  • Agregué mi usuario a los administradores locales y a los usuarios de administración remota en el servidor sin suerte.
  • He ajustado el registro de REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1y esto no funciona independientemente de su valor.
  • Reinicié y ejecuté sfc /scannowun último esfuerzo.

Especificaciones del servidor, estación de trabajo y mi usuario:

  • Mi cuenta de dominio es un administrador de dominio.
  • El servidor es Windows Server 2019 Standard.
  • La estación de trabajo es Windows 10 Pro.
  • PowerShell versión 5 para ambos.
  • Ambas computadoras están en el mismo dominio.
  • Ambas computadoras están actualizadas.

Podría usar la cuenta de administrador local para sondear esta información y solucionar mi problema de intimidación, pero eso no soluciona el problema subyacente.

Desde el servidor remoto no hay entradas de error en el Registro de administración remota de Windows, pero en mi computadora tengo estos:

ID de evento de error: 142

WSMan operation Enumeration failed, error code 2150858909

ID de evento de error: 49

The WinRM protocol operation failed due to the following error: WinRM cannot process the request. The following error with errorcode 0x80090322 occurred while using Kerberos authentication: An unknown security error occurred.  
 Possible causes are:
  -The user name or password specified are invalid.
  -Kerberos is used when no authentication method and no user name are specified.
  -Kerberos accepts domain user names, but not local user names.
  -The Service Principal Name (SPN) for the remote computer name and port does not exist.
  -The client and remote computers are in different domains and there is no trust between the two domains.
 After checking for the above issues, try the following:
  -Check the Event Viewer for events related to authentication.
  -Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
 Note that computers in the TrustedHosts list might not be authenticated.
   -For more information about WinRM configuration, run the following command: winrm help config..

ID de evento de error: 161

WinRM cannot process the request. The following error with errorcode 0x80090322 occurred while using Kerberos authentication: An unknown security error occurred.  
 Possible causes are:
  -The user name or password specified are invalid.
  -Kerberos is used when no authentication method and no user name are specified.
  -Kerberos accepts domain user names, but not local user names.
  -The Service Principal Name (SPN) for the remote computer name and port does not exist.
  -The client and remote computers are in different domains and there is no trust between the two domains.
 After checking for the above issues, try the following:
  -Check the Event Viewer for events related to authentication.
  -Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
 Note that computers in the TrustedHosts list might not be authenticated.
   -For more information about WinRM configuration, run the following command: winrm help config.

Puedo RDP en el servidor muy bien, así es como he estado haciendo algunas de las pruebas locales.

Probé estos dos comandos:

gwmi win32_operatingsystem -ComputerName Server1se ejecuta normalmente sin problemas, eso es especificar el servidor remoto y RDPing para ejecutarse localmente.

Get-CimInstance win32_operatingsystem -ComputerName Server1No puedo ejecutar desde mi estación de trabajo, pero si ingreso RDP al servidor y lo ejecuto, se ejecutará normalmente.

La producción de SetSPN -Xrendimientos no se superpone a los SPN.

La salida de SetSPN -Lrendimientos:

Registered ServicePrincipalNames for CN=Server1,OU=Servers,OU=Organization,DC=Organization,DC=LOCAL:
        TERMSRV/Server1.DOMAIN.LOCAL
        WSMAN/Server1.DOMAIN.LOCAL
        RestrictedKrbHost/Server1.DOMAIN.LOCAL
        HOST/Server1.DOMAIN.LOCAL
        TERMSRV/Server1
        WSMAN/Server1
        RestrictedKrbHost/Server1
        HOST/Server1

Todas y cada una de las sugerencias son muy apreciadas.

Respuesta1

Lo tengo resuelto.

Fue un problema de SPN. HTTP/Server1 y HTTP/Server1.domain estaban siendo utilizados por una cuenta de usuario aleatoria con el nombre del servidor.

Después de deshabilitar la cuenta y mover los SPN al objeto de la computadora, WinRM ahora funciona como se supone que debe hacerlo.

Esteme llevó en la dirección correcta.

Respuesta2

Solucioné este problema con un reinicio del spn.

setspn -R <hostname>

información relacionada