Rezolv o problemă pe care o am cu un senzor PRTG care nu colectează informații despre Windows Update de la unul dintre serverele noastre. Utilizează WinRM și o comandă PowerShell de la distanță pentru a face asta.
Server 1 - Issue Server
Server 2 - Server de lucru
Când încerc să folosesc Introduceți-PSSession -ComputerName Server1
sau winrs -r:Server1 dir
pentru a testa conexiunea, primesc următoarele erori:
PS C:\WINDOWS\system32> winrs -r:Server1 dir
Eroare Winrs: WinRM nu poate procesa cererea. Următoarea eroare cu codul de eroare 0x80090322 a apărut în timpul utilizării autentificării Kerberos: A apărut o eroare de securitate necunoscută.
Cauzele posibile sunt:
-Numele de utilizator sau parola specificate sunt nevalide.
-Kerberos este utilizat atunci când nu sunt specificate nicio metodă de autentificare și nici un nume de utilizator.
-Kerberos acceptă nume de utilizator de domeniu, dar nu nume de utilizator locale.
-Numele principal al serviciului (SPN) pentru numele computerului la distanță și portul nu există.
-Clientul și computerele de la distanță sunt în domenii diferite și nu există încredere între cele două domenii.
După ce ați verificat problemele de mai sus, încercați următoarele:
-Verificați Event Viewer pentru evenimente legate de autentificare.
-Schimbarea metodei de autentificare; adăugați computerul de destinație la setarea de configurare WinRM TrustedHosts sau utilizați transportul HTTPS.
Rețineți că este posibil ca computerele din lista TrustedHosts să nu fie autentificate.
-Pentru mai multe informații despre configurarea WinRM, rulați următoarea comandă: winrm help config.
PS C:\WINDOWS\system32> Enter-PSSession -ComputerName Server1
Enter-PSSession: Conectarea la serverul la distanță Server1 a eșuat cu următorul mesaj de eroare: WinRM nu poate procesa cererea. The
următoarea eroare cu codul de eroare 0x80090322 a apărut în timpul utilizării autentificării Kerberos: a apărut o eroare de securitate necunoscută.
Cauzele posibile sunt:
-Numele de utilizator sau parola specificate sunt nevalide.
-Kerberos este utilizat atunci când nu sunt specificate nicio metodă de autentificare și nici un nume de utilizator.
-Kerberos acceptă nume de utilizator de domeniu, dar nu nume de utilizator locale.
-Numele principal al serviciului (SPN) pentru numele computerului la distanță și portul nu există.
-Clientul și computerele de la distanță sunt în domenii diferite și nu există încredere între cele două domenii.
După ce ați verificat problemele de mai sus, încercați următoarele:
-Verificați Event Viewer pentru evenimente legate de autentificare.
-Schimbarea metodei de autentificare; adăugați computerul de destinație la setarea de configurare WinRM TrustedHosts sau utilizați transportul HTTPS.
Rețineți că este posibil ca computerele din lista TrustedHosts să nu fie autentificate.
-Pentru mai multe informații despre configurarea WinRM, rulați următoarea comandă: winrm help config. Pentru mai multe informații, consultați
about_Remote_Troubleshooting Subiect de ajutor.
La linia:1 char:1
+ Enter-PSSession -ComputerName Server1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidArgument: (Server1:String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed
Dacă rulez comanda pe oricare dintre celelalte servere ale noastre, conexiunea are succes, acesta este singurul care îmi dă probleme.
Dacă rulez comanda Enter-PSSession
cu -Acreditare
comuta cu contul meu de utilizator primesc aceeași eroare, dar dacă rulez comanda și specific contul de administrator local al serverului se va conecta. Alte servere funcționează bine.
PS C:\WINDOWS\system32> Enter-PSSession -ComputerName Server1 -Credential Server1\administrator
[Server1]: PS C:\Users\Administrator\Documents> ieșire
PS C:\WINDOWS\system32> Enter-PSSession -ComputerName Server1 -domeniu de acreditări\myuser
Enter-PSSession: Conectarea la serverul la distanță Server1 a eșuat cu următorul mesaj de eroare: WinRM nu poate procesa cererea. The
Următoarea eroare cu codul de eroare 0x80090322 a apărut în timpul utilizării autentificării negociați: a apărut o eroare de securitate necunoscută.
Cauzele posibile sunt:
-Numele de utilizator sau parola specificate sunt nevalide.
-Kerberos este utilizat atunci când nu sunt specificate nicio metodă de autentificare și nici un nume de utilizator.
-Kerberos acceptă nume de utilizator de domeniu, dar nu nume de utilizator locale.
-Numele principal al serviciului (SPN) pentru numele computerului la distanță și portul nu există.
-Clientul și computerele de la distanță sunt în domenii diferite și nu există încredere între cele două domenii.
După ce ați verificat problemele de mai sus, încercați următoarele:
-Verificați Event Viewer pentru evenimente legate de autentificare.
-Schimbarea metodei de autentificare; adăugați computerul de destinație la setarea de configurare WinRM TrustedHosts sau utilizați transportul HTTPS.
Rețineți că este posibil ca computerele din lista TrustedHosts să nu fie autentificate.
-Pentru mai multe informații despre configurarea WinRM, rulați următoarea comandă: winrm help config. Pentru mai multe informații, consultați
about_Remote_Troubleshooting Subiect de ajutor.
La linia: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> ieșire
PS C:\WINDOWS\system32>
Dacă fug Noua-PSSession
de la serverul local voi primi aceeași eroare, cu excepția cazului în care specific -EnableNetworkAccess
comuta si apoi se va conecta. Asta mă încurcă.Vizualizatorul de evenimente îmi oferă ID de eveniment 161 legat de autentificarea utilizatorului și eroarea 142 pentru sesiunea care nu a putut fi creată.
Dacă fug Test-WSMan
de la serverul local și o gazdă de la distanță arată că rulează.
Iată configurația WinRM și configurația ascultătorului:
PS C:\Windows\system32> winrm obține winrm/config
Config
MaxEnvelopeSizekb = 500
MaxTimeoutms = 60000
MaxBatchItems = 32000
MaxProviderRequests = 4294967295
Client
NetworkDelayms = 5000
URLPrefix = wsman
AllowUnencrypted = fals
Auth
De bază = adevărat
Digest = adevărat
Kerberos = adevărat
Negociază = adevărat
Certificat = adevărat
CredSSP = fals
Porturi implicite
HTTP = 5985
HTTPS = 5986
TrustedHosts = 10.10.10.142
Serviciu
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
MaxConnexions = 300
MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = fals
Auth
De bază = fals
Kerberos = adevărat
Negociază = adevărat
Certificat = fals
CredSSP = fals
CbtHardeningLevel = Relaxat
Porturi implicite
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *
EnableCompatibilityHttpListener = false
EnableCompatibilityHttpsListener = false
Amprenta certificată
AllowRemoteAccess = adevărat
Câștigători
AllowRemoteShellAccess = adevărat
IdleTimeout = 7200000
MaxConcurrentUsers = 2147483647
MaxShellRunTime = 2147483647
MaxProcessesPerShell = 2147483647
MaxMemoryPerShellMB = 2147483647
MaxShelsPerUser = 2147483647
PS C:\Windows\system32> winrm enumera winrm/config/listener
Ascultător
Adresa = *
Transport = HTTP
Port = 5985
Nume gazdă
Activat = adevărat
URLPrefix = wsman
Amprenta certificată
ListeningOn = 10.10.10.87, 127.0.0.1, ::1, fe80::4579:db85:c9cb:ead0%6
Alte lucruri pe care le-am incercat:
- Nu am setări GPO pentru WinRM.
- Am șters și recreat ascultătorul.
- Am resetat de mai multe ori configurația WinRM.
- Windows Advanced Firewall este dezactivat pentru Public, Private și Domain
retelelor.
- Am verificat
Set-PSSessionConfiguration -Nume Microsoft.PowerShell -ShowSecurityDescriptorUI
permisiunile și
privilegiile par în regulă.
- Am folosit adrese IP în loc de nume de gazdă cu aceleași
rezultate.
- Mi-am adăugat computerul la lista de gazde de încredere și nu
muncă. Acest lucru nu ar trebui să fie necesar, deoarece ambele computere
sunt pe acelasi domeniu.
- A fugit
Enable-PSRemoting -Force
(Deși acest lucru ar trebui să fie inutil
deoarece WinRM este activat implicit pentru Server 2012 și înainte).
- Mi-am adăugat utilizatorul la Administratorii locali și la distanță
Administrarea utilizatorilor pe server fără noroc.
- Am ajustat registrul de
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1
iar asta nu
functioneaza indiferent de valoarea sa.
- Am repornit și am rulat un
sfc /scannow
ca un ultim efort de șanț.
Specificații ale serverului, stației de lucru și utilizatorului meu:
- Contul meu de domeniu este un administrator de domeniu.
- Serverul este Windows Server 2019 Standard.
- Stația de lucru este Windows 10 Pro.
- PowerShell versiunea 5 pentru ambele.
- Ambele computere sunt pe același domeniu.
- Ambele computere sunt la zi.
Aș putea folosi contul de administrator local pentru a sonda aceste informații și pentru a remedia problema mea de intimidare, dar asta nu rezolvă problema de bază.
De pe serverul de la distanță nu există intrări de eroare în jurnalul Windows Remote Management, dar pe computerul meu am acestea:
ID eveniment de eroare - 142
Operațiunea WSMan Enumerarea a eșuat, cod de eroare 2150858909
ID eveniment de eroare - 49
Operațiunea protocolului WinRM a eșuat din cauza următoarei erori: WinRM nu poate procesa cererea. Următoarea eroare cu codul de eroare 0x80090322 a apărut în timpul utilizării autentificării Kerberos: A apărut o eroare de securitate necunoscută.
Cauzele posibile sunt:
-Numele de utilizator sau parola specificate sunt nevalide.
-Kerberos este utilizat atunci când nu sunt specificate nicio metodă de autentificare și nici un nume de utilizator.
-Kerberos acceptă nume de utilizator de domeniu, dar nu nume de utilizator locale.
-Numele principal al serviciului (SPN) pentru numele computerului la distanță și portul nu există.
-Clientul și computerele de la distanță sunt în domenii diferite și nu există încredere între cele două domenii.
După ce ați verificat problemele de mai sus, încercați următoarele:
-Verificați Event Viewer pentru evenimente legate de autentificare.
-Schimbarea metodei de autentificare; adăugați computerul de destinație la setarea de configurare WinRM TrustedHosts sau utilizați transportul HTTPS.
Rețineți că este posibil ca computerele din lista TrustedHosts să nu fie autentificate.
-Pentru mai multe informații despre configurarea WinRM, rulați următoarea comandă: winrm help config..
ID eveniment de eroare - 161
WinRM nu poate procesa cererea. Următoarea eroare cu codul de eroare 0x80090322 a apărut în timpul utilizării autentificării Kerberos: A apărut o eroare de securitate necunoscută.
Cauzele posibile sunt:
-Numele de utilizator sau parola specificate sunt nevalide.
-Kerberos este utilizat atunci când nu sunt specificate nicio metodă de autentificare și nici un nume de utilizator.
-Kerberos acceptă nume de utilizator de domeniu, dar nu nume de utilizator locale.
-Numele principal al serviciului (SPN) pentru numele computerului la distanță și portul nu există.
-Clientul și computerele de la distanță sunt în domenii diferite și nu există încredere între cele două domenii.
După ce ați verificat problemele de mai sus, încercați următoarele:
-Verificați Event Viewer pentru evenimente legate de autentificare.
-Schimbarea metodei de autentificare; adăugați computerul de destinație la setarea de configurare WinRM TrustedHosts sau utilizați transportul HTTPS.
Rețineți că este posibil ca computerele din lista TrustedHosts să nu fie autentificate.
-Pentru mai multe informații despre configurarea WinRM, rulați următoarea comandă: winrm help config.
Pot RDP în server foarte bine, așa am făcut unele dintre testele locale.
Am testat aceste două comenzi:
gwmi win32_operatingsystem -ComputerName Server1
se execută normal, fără nicio problemă, adică specificând serverul la distanță și RDPing să ruleze local.
Get-CimInstance win32_operatingsystem -ComputerName Server1
Nu pot rula de pe stația mea de lucru, dar dacă am RDP pe server și îl rulez, se va executa normal.
Ieșirea de SetSPN -X
nu returnează SPN-uri suprapuse
Ieșirea de SetSPN -L
se intoarce:
ServicePrincipalNames înregistrat pentru CN=Server1,OU=Servere,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
Toate sugestiile sunt foarte apreciate.