Czy istnieje sposób wiersza poleceń, aby wyświetlić listę wszystkich użytkowników w określonej grupie Active Directory?
Widzę, kto jest w grupie, przechodząc do opcji Zarządzaj komputerem -> Lokalny użytkownik / grupy -> Grupy i klikając dwukrotnie grupę.
Potrzebuję tylko wiersza polecenia do odzyskania danych, aby móc wykonywać inne automatyczne zadania.
windows
active-directory
Peter Mortensen
źródło
źródło
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members -expand
dostaje członków w zagnieżdżonych grupach, chociaż może nie pomóc w duplikatach, i daje pełny ciąg zapytania AD dla członka, a nie tylko jego CN.Oto inny sposób z wiersza polecenia, ale nie jestem pewien, jak automatyczny, ponieważ trzeba przeanalizować dane wyjściowe:
Jeśli grupą jest „globalna grupa zabezpieczeń”:
Jeśli szukasz „lokalnej grupy zabezpieczeń domeny”:
źródło
net user /domain
). Dzięki!Oto wersja polecenia ds, którą uważam za bardziej przydatną, zwłaszcza jeśli masz złożoną strukturę jednostek organizacyjnych i niekoniecznie znasz pełną nazwę wyróżniającą grupy.
lub jeśli znasz numer CN grupy, zwykle taki sam jak identyfikator SAM, podany w przypadku, gdy w nazwie znajdują się spacje:
Jak stwierdzono w komentarzach, domyślnie polecenia ds * (dsquery, dsget, dsadd, dsrm) są dostępne tylko na kontrolerze domeny. Możesz jednak zainstalować pakiet narzędzi administracyjnych z narzędzi obsługi na nośniku instalacyjnym systemu Windows Server lub pobrać go z witryny pobierania firmy Microsoft.
Możesz również wykonać te zapytania za pomocą PowerShell. PowerShell jest już dostępny jako funkcja do zainstalowania na serwerach 2008, 2008 R2 i Windows 7, ale musisz pobrać program WinRM Framework, aby zainstalować go na XP lub Vista.
Aby uzyskać dostęp do wszystkich poleceń cmdlet AD specyficzne w PowerShell będzie TAKŻE trzeba wykonać co najmniej jedną z następujących instalacjach:
źródło
W przypadku rozwiązania PowerShell, które nie wymaga dodatku Quest AD, wypróbuj następujące rozwiązania
Spowoduje to również wyliczenie grup zagnieżdżonych. Jeśli nie chcesz tego robić, usuń przełącznik -recursive .
źródło
Bardzo prosty sposób, który działa na serwerach i klientach:
Zwraca 1, jeśli użytkownik jest w grupie NAZWA TWOJEJ GRUPY, w przeciwnym razie zwróci 0
Następnie możesz użyć wartości% ERRORLEVEL% (0, jeśli użytkownik w grupie, 1, jeśli nie), jak
źródło
whoami /groups | find /I /C "YOURGROUPNAME"
Korzystając z bezpłatnej powłoki ActiveRoles Management Shell programu PowerShell i Quest Software dla usługi Active Directory, możesz użyć:
(Get-QADGroup „GroupName”). Członkowie
http://www.quest.com/powershell/activeroles-server.aspx
źródło
Odpowiedzi tutaj przy użyciu
dsget
idsquery
będą działać tylko na serwerowych wersjach systemu Windows, ponieważ te polecenia nie są dostarczane w innych wersjach systemu Windows (np. Windows 7). Na komputerach bez tych poleceń możesz uzyskać potrzebne informacje za pomocą polecenia AdFind .Oto przykładowe zapytanie dotyczące członkostwa w grupie:
źródło
Jak wyświetlić listę lokalnych grup i użytkowników?
Użyj poniższego skryptu programu PowerShell, aby wyświetlić listę lokalnych grup i członków tych grup.
Skopiuj powyższy tekst do notatnika i zapisz jako
filename.ps1
. Następnie uruchom plik. Powinienem wyświetlić Grupy i Użytkowników w każdej grupie, albo możesz po prostu uruchomić to z PowerShell.źródło
cmdlet ForEach-Object at command pipeline position 1. Supply values for the following parameters:
a potem pytam o dane wejścioweProcess[0]
Aby wyświetlić członków
UserGroup1
próby:źródło
cmd
jakiegoś powodu to zadziała zbyt dobrze .dsget failed:'Target object for this command' is missing.