Powershell Remote PSSession schlägt fehl – ​​Domänenadministratorkonto – Fehler 0x80090322

Powershell Remote PSSession schlägt fehl – ​​Domänenadministratorkonto – Fehler 0x80090322

Ich behebe ein Problem mit einem PRTG-Sensor, der keine Windows Update-Informationen von einem unserer Server sammelt. Dazu verwende ich WinRM und einen Remote-PowerShell-Befehl.

Server 1 – Problemserver

Server 2 - Funktionierender Server

Wenn ich versuche, die Verbindung zu verwenden Enter-PSSession -ComputerName Server1oder winrs -r:Server1 dirzu testen, erhalte ich immer wieder die folgenden Fehlermeldungen:

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

Wenn ich den Befehl auf einem unserer anderen Server ausführe, ist die Verbindung erfolgreich; dies ist der einzige Server, der mir Probleme bereitet.

Wenn ich den Befehl Enter-PSSessionmit dem -CredentialSchalter unter meinem Benutzerkonto ausführe, erhalte ich denselben Fehler. Wenn ich den Befehl jedoch ausführe und das lokale Administratorkonto des Servers angebe, wird eine Verbindung hergestellt. Andere Server funktionieren einwandfrei.

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>

Wenn ich es New-PSSessionvom lokalen Server aus ausführe, erhalte ich denselben Fehler, es sei denn, ich gebe den -EnableNetworkAccessSwitch an und dann wird eine Verbindung hergestellt. Das verwirrt mich. Die Ereignisanzeige gibt mir die Ereignis-ID 161 bezüglich der Benutzerauthentifizierung und den Fehler 142 für die fehlgeschlagene Sitzungserstellung.

Wenn ich Test-WSManes vom lokalen Server und einem Remote-Host aus ausführe, wird angezeigt, dass es ausgeführt wird.

Hier ist die WinRM-Konfiguration und die Listener-Konfiguration:

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

Andere Dinge, die ich versucht habe:

  • Ich habe keine GPO-Einstellungen für WinRM eingerichtet.
  • Ich habe den Listener gelöscht und neu erstellt.
  • Ich habe die Konfiguration von WinRM mehrmals zurückgesetzt.
  • Die erweiterte Firewall von Windows ist für öffentliche, private und Domänennetzwerke deaktiviert.
  • Ich habe die Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUIBerechtigungen geprüft und die Privilegien scheinen in Ordnung zu sein.
  • Ich habe IP-Adressen anstelle von Hostnamen verwendet, mit denselben Ergebnissen.
  • Ich habe meinen Computer zur Liste der vertrauenswürdigen Hosts hinzugefügt, aber er funktioniert nicht. Dies sollte jedoch nicht notwendig sein, da sich beide Computer in derselben Domäne befinden.
  • Ran Enable-PSRemoting -Force(obwohl dies unnötig sein sollte, da WinRM für Server 2012 und höher standardmäßig aktiviert ist).
  • Ich habe meinen Benutzer ohne Erfolg zu den lokalen Administratoren und Remoteverwaltungsbenutzern auf dem Server hinzugefügt.
  • Ich habe die Registrierung angepasst REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1und dies funktioniert unabhängig vom Wert nicht.
  • sfc /scannowIch habe neugestartet und als letzten Versuch einen ausgeführt .

Spezifikationen des Servers, der Arbeitsstation und meines Benutzers:

  • Mein Domänenkonto ist ein Domänenadministrator.
  • Als Server wird Windows Server 2019 Standard verwendet.
  • Die Workstation ist Windows 10 Pro.
  • PowerShell Version 5 für beide.
  • Beide Computer befinden sich in derselben Domäne.
  • Beide Rechner sind auf dem neuesten Stand.

Ich könnte das lokale Administratorkonto verwenden, um diese Informationen abzufragen und mein Einschüchterungsproblem zu beheben, aber das behebt nicht das zugrunde liegende Problem.

Vom Remote-Server gibt es keine Fehlereinträge im Windows Remote Management-Protokoll, aber auf meinem Computer habe ich diese:

Fehlerereignis-ID – 142

WSMan operation Enumeration failed, error code 2150858909

Fehlerereignis-ID - 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..

Fehlerereignis-ID – 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.

Ich kann problemlos per RDP auf den Server zugreifen, so habe ich einige der lokalen Tests durchgeführt.

Ich habe diese beiden Befehle getestet:

gwmi win32_operatingsystem -ComputerName Server1wird normal und ohne Probleme ausgeführt, d. h. durch Angabe des Remote-Servers und RDP zur lokalen Ausführung.

Get-CimInstance win32_operatingsystem -ComputerName Server1Ich kann es nicht von meiner Workstation aus ausführen, aber wenn ich mich per RDP mit dem Server in Verbindung setze und es ausführe, wird es normal ausgeführt.

Die Ausgabe von SetSPN -Xgibt keine überlappenden SPNs zurück

Die Ausgabe von SetSPN -LReturns:

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

Alle Vorschläge sind sehr willkommen.

Antwort1

Ich habe es gelöst.

Es war ein SPN-Problem. HTTP/Server1 und HTTP/Server1.domain wurden von einem zufälligen Benutzerkonto verwendet, das nach dem Server benannt war.

Nachdem das Konto deaktiviert und die SPNs zum Computerobjekt verschoben wurden, funktioniert WinRM nun wie vorgesehen.

Dashat mich in die richtige Richtung gebracht.

Antwort2

Ich habe dieses Problem für mich selbst behoben, indem ich den SPN zurückgesetzt habe.

setspn -R <hostname>

verwandte Informationen