Udostępnij za pośrednictwem


Polecenie Get-ADGroupMember zwraca błąd dla grupy lokalnej domeny do członków z lasów zdalnych

Ten artykuł pomaga naprawić błąd występujący podczas uruchamiania Get-ADGroupMember polecenia cmdlet w scenariuszu, w którym grupa ma członka z lasu zdalnego.

Oryginalny numer KB: 3171600

Symptomy

Załóżmy, że polecenie cmdlet służy Get-ADGroupMember do identyfikowania członków grupy w usługach domena usługi Active Directory (AD DS). Jednak po uruchomieniu polecenia cmdlet dla grupy lokalnej domeny zwracany jest następujący błąd:

Get-ADGroupMember -verbose -identity "CN=Test-Local1,OU=Test Accounts,DC=contoso,DC=com"
Get-ADGroupMember: Wystąpił nieokreślony błąd
W wierszu:1 char:1
+ Get-ADGroupMember -verbose -identity "CN=Test-Local1,OU=Test Accounts,DC=contoso ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: NotSpecified: (CN=Test-Local1,... bertm-w7,DC=com:ADGroup) [Get-ADGroupMember], ADExceptionon + FullyQualifiedErrorId: ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember

Uwaga 16.

W jednokierunkowej relacji zaufania podczas korzystania z Get-ADGroupMember polecenia cmdlet w grupie z lasu zaufania są wyświetlane następujące błędy, jeśli grupa zawiera członków z zaufanego lasu:

  • "Wystąpił nieokreślony błąd"
  • "Serwer nie mógł przetworzyć żądania z powodu błędu wewnętrznego"

Aby obejść ten problem, użyj przystawki Użytkownicy i komputery usługi Active Directory, aby wyświetlić członków grupy lub przekształcić relację zaufania jednokierunkowego na dwukierunkową relację zaufania.

Przyczyna

Ten problem występuje, jeśli grupa ma członka z innego lasu, którego konto zostało usunięte z lasu konta. Element członkowski jest reprezentowany w domenie lokalnej przez podmiot zabezpieczeń zagranicznych (FSP). W eksporcie LDIFDE grupy członkostwo jest wyświetlane w następujący sposób:

dn: CN=Test-Local1,OU=Test Accounts,DC=contoso,DC=com

członek:

CN=S-1-5-21-3110691720-3620623707-1182478234-698540,CN=ForeignSecurityPrincipals,DC=contoso,DC=com

członek:

CN=S-1-5-21-3110691720-3620623707-1182478234-695739,CN=ForeignSecurityPrincipals,DC=contoso,DC=com

Gdy konto źródłowe z identyfikatorem SID zostanie usunięte, nie zostanie zaktualizowany ani usunięty, aby odzwierciedlić to usunięcie. Należy ręcznie sprawdzić, czy te odwołania FSP zostały usunięte.

Rozwiązanie

Aby rozwiązać ten problem, włącz rejestrowanie żądań rozwiązania, które dotyczą tych identyfikatorów SID i które są wykonywane przez usługę sieci Web usługi Active Directory. W ten sposób można zidentyfikować konta, które kończą się niepowodzeniem. W tym celu uruchom Get-ADGroupMember polecenie cmdlet na kontrolerze contoso.com domeny programu (gdzie symbol zastępczy reprezentuje domenę, której dotyczy pytanie).

Aby włączyć rejestrowanie, uruchom następujące wiersze polecenia:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgInfoLevel -Value 0x800 -Type dword -Force
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgTraceOptions -Value 0x1 -Type dword -Force

Pamiętaj, aby wyłączyć rejestrowanie po utworzeniu dziennika:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgInfoLevel -Value 0x0 -Type dword -Force

Zostanie wyświetlony plik o nazwie c:\windows\debug\lsp.log, który śledzi próby rozpoznawania nazw SID. Po ponownym uruchomieniu polecenia cmdlet na kontrolerze domeny, na którym zostało wykonane polecenie cmdlet, plik zarejestruje błędy i będzie podobny do następującego:

LspDsLookup — wprowadzanie funkcji LsapLookupSidsLspDsLookup — żądanie LookupSids dla 1 identyfikatorów SID z poziomem=1, mapowanecount=0, options=0x0, clientRevision=2 jest przetwarzane. Są to identyfikatory SID; LspDsLookup — Sids[ 0 ] = S-1-5-21-3110691720-3620623707-1182478234-698540LspDsLookup — szczegóły żądania: Maszyna lokalna, identyfikator procesu = 1408, Nazwa procesu = C:\Windows\ADWS\Microsoft.ActiveDirectory.WebServices.exe LspDsLookup — wprowadzanie funkcji LsapDbLookupSidsUsingIdentityCacheLspDsLookup — 1 identyfikatory SID pozostają bez zmianppedLspDsLookup — zamykanie funkcji LsapDbLookupSidsUsingIdentityCache ze stanem 0x0LspDsLookup — żądanie łańcucha LookupSids (przy użyciu netlogon) do \dc3.northwindtraders.com dla 1 identyfikatorów SID zostanie wykonanych z poziomem =6, mapowanymcount=0, options=0x0, serverRevision=0. Identyfikatory SID to; LspDsLookup — Sids[ 0 ] = S-1-5-21-3110691720-3620623707-1182478234-698540 LspDsLookup — żądanie lookup (przy użyciu Netlogon) do \dc3.northwindtraders.com zwracane z 0xc0000073 i mappedcount=0, serverRevision=0LspDsLookup — zamykanie funkcji LsapLookupSids ze stanem 0xc0000073

Sprawdź następujące elementy, aby sprawdzić, czy jest to odpowiednia sekcja dla tego problemu (w poprzednich przykładowych danych wyjściowych):

  • Proces to C:\Windows\ADWS\Microsoft.ActiveDirectory.WebServices.exe.
  • Żądanie jest wysyłane do kontrolera domeny w innym lesie, na przykład northwindtraders.com.
  • Kod zwracany jest 0xc0000073, który jest równy STATUS_NONE_MAPPED.

Aby znaleźć obiekt FSP, uruchom następujące polecenie (zastąp nazwy domen i identyfikatory SID):

get-AdObject -Searchbase "CN=ForeignSecurityPrincipals,DC=contoso,DC=com" -ldapfilter "(cn=S-1-5-21-3110691720-3620623707-1182478234-698540)"

Oryginalny obiekt dla tego dostawcy FSP już nie istnieje, więc można go bezpiecznie usunąć. Spowoduje to również usunięcie go ze wszystkich grup, do których należy:

get-AdObject -Searchbase "CN=ForeignSecurityPrincipals,DC=contoso,DC=com" -ldapfilter "(cn=S-1-5-21-3110691720-3620623707-1182478234-698540)" | Remove-AdObject -Confirm:$false

Informacje

Jak można mapować identyfikatory SID i nazwy kont w systemie Windows