Get-aduser Jest to jedno z głównych poleceń cmdlet programu PowerShell, których można użyć do uzyskania różnych informacji o użytkownikach Active Directory i ich atrybutach. Za pomocą polecenia cmdlet Get-ADUser można uzyskać wartość dowolnego atrybutu konta użytkownika AD, wyświetlić listę użytkowników w domenie z niezbędnymi atrybutami i wyeksportować ich do pliku CSV, a także użyć różnych kryteriów, aby wybrać użytkowników domeny.
Polecenie cmdlet Get-ADUser jest dostępne od PowerShell 2.0 i jest częścią specjalnego modułu Active Directory, modułu Active Directory dla Windows PowerShell (wprowadzonego w Windows Server 2008 R2). Polecenia cmdlet RSAT-AD-PowerShell umożliwiają wykonywanie różnych operacji na obiektach katalogu AD.
Uwaga. Wcześniej musiałem używać różnych narzędzi, aby uzyskać informacje o atrybutach konta użytkownika AD: konsola ADUC (w tym zapisane żądania AD), skrypty vbs, narzędzie dsquery itp. Wszystkie te narzędzia mogą łatwo zastąpić polecenie cmdlet Get-ADUser..W tym przykładzie pokażemy, jak korzystać z polecenia cmdlet Get-ADUser programu PowerShell, aby uzyskać informacje o czasie ostatniej zmiany hasła użytkownika, wygaśnięcia hasła i innych danych użytkownika.
Treść
- Jak znaleźć użytkownika w AD i wyświetlić jego właściwości za pomocą Get-ADUser?
- Pobieranie użytkowników z wielu jednostek organizacyjnych za pomocą Get-ADUser
- Uzyskaj adresy e-mail użytkowników z AD
- Get-ADUser: eksportuj użytkowników domeny do pliku tekstowego lub pliku CSV / Excel
- Get-ADUser -Filter: Sortuj i filtruj listę użytkowników AD
- Get-ADUser: Różne przykłady użycia
Jak znaleźć użytkownika w AD i wyświetlić jego właściwości za pomocą Get-ADUser?
Aby użyć modułu RSAT-AD-PowerShell, musisz uruchomić konsolę PowerShell z uprawnieniami administratora i zaimportować moduł za pomocą polecenia:
Aktywowany katalog Import-Module
W systemie Windows Server 2012 i nowszych moduł RSAT-AD-PowerShell jest instalowany domyślnie po wdrożeniu roli Usługi domenowe w usłudze Active Directory (AD DS) na serwerze. Aby zainstalować moduł na serwerze będącym członkiem domeny, uruchom polecenie:
Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature
W stacjonarnej wersji systemu Windows (na przykład Windows 10), aby dowódca Get-AdUser działał, musisz zainstalować odpowiednią wersję RSAT i włączyć komponent w Panelu sterowania Moduł Active Directory dla Windows PowerShell (Narzędzia administracji zdalnej serwera -> Narzędzia administracji roli -> Narzędzia AD DS i AD LDS -> Narzędzia AD DS).
Możesz zainstalować moduł AD z PowerShell:
Add-WindowsCapability -online -Name „Rsat.ActiveDirectory.DS-LDS.Tools ~~~~ 0.0.1.0”
Moduł importu „C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.dll”
Moduł importu „C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.resources.dll”
Pełną listę wszystkich argumentów polecenia cmdlet Get-ADUser można uzyskać w następujący sposób:
pomoc Get-ADUser
Aby wyświetlić listę wszystkich kont domeny, uruchom polecenie:
Get-ADUser -filter *
Domyślnie polecenie cmdlet Get-ADUser zwraca tylko 10 podstawowych atrybutów (spośród ponad 120 właściwości konta użytkownika): DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, status konta (Enabled: True / False zgodnie z atrybutem UserAccountControl) it .d.
Dane wyjściowe polecenia cmdlet nie zawierają informacji o czasie ostatniej zmiany hasła użytkownika.
Aby wykonać żądanie na określonym kontrolerze domeny, używany jest parametr - Server:Get-ADUSer -Server DC01.winitpro.loc -tstuser tożsamości
Aby wyświetlić pełne informacje o wszystkich dostępnych atrybutach użytkownika tuser, uruchom polecenie:
Get-ADUser -identity tuser-Właściwości *
Polecenie cmdlet Get-ADUser z parametrem Właściwości * wyświetla wszystkie atrybuty użytkownika AD i ich wartości.
Spróbujmy zmienić parametry polecenia Get-ADUser, aby wyświetlały tylko potrzebne nam atrybuty użytkownika. Możesz wyświetlić jednocześnie kilka atrybutów użytkownika:
- Hasło wygasło
- PasswordLastSet
- PasswordNeverExpires
- lastlogontimestamp
Uruchom polecenie:
Get-ADUser tuser - właściwości PasswordExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp
Teraz informacje o użytkowniku zawierają informacje o stanie konta (Wygasłe: Prawda / Fałsz), dacie zmiany hasła i godzinie ostatniego wejścia do domeny (lastlogontimestamp). Prezentujemy informacje w wygodniejszej formie tabelarycznej i usuwamy wszystkie niepotrzebne atrybuty za pomocą Select-Object -Property lub Format-Table:
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | Nazwa, hasło, hasło wygasłe, hasło, hasło, hasło, hasło
Pobieranie użytkowników z wielu jednostek organizacyjnych za pomocą Get-ADUser
Aby usunąć użytkowników tylko z określonego kontenera domeny (OU), użyj opcji SearchBase:
Get-ADUser -SearchBase 'OU = Moskwa, DC = winitpro, DC = loc' -filter * -property HasłoExpired, PasswordLastSet, PasswordNeverExpires | Nazwa, hasło, hasło wygasłe, hasło, hasło, hasło, hasło
Jeśli chcesz wybrać użytkowników z kilku jednostek organizacyjnych jednocześnie, użyj następującej konstrukcji:
$ OUs = „OU = Moskwa, DC = winitpro, DC = lokalny”, „OU = SPB, DC = winitpro, DC = loc”
$ OUs | foreach Get-ADUser -SearchBase $ _ -Filter * | wybierz Nazwa, włączone
Uzyskaj adresy e-mail użytkowników z AD
Adres e-mail użytkownika jest jednym z atrybutów w usłudze Active Directory. Aby wyświetlić listę adresów e-mail użytkowników, należy dodać pole EmailAddress do wybranych pól polecenia cmdlet Get-ADUser.
Get-ADUser -filter * -properties Adres e-mail -SearchBase „OU = MSK, DC = winitpro, DC = loc” | nazwa obiektu wybierz, adres e-mail
Wyświetl listę aktywnych kont z adresami do korespondencji:
Get-ADUser -Filter (mail -ne "null") -i (Enabled -eq "true") -Properties Nazwisko, GivenName, mail | Wybierz nazwę obiektu, nazwisko, imię, adres e-mail | Tabela formatów
Lista użytkowników, którzy nie mają adresu e-mail:
Get-ADUser -Filter * -Properties EmailAddress | gdzie -Property Adres e-mail -eq $ null
Poniższy przykład umożliwia rozładowanie książki adresowej firmowych adresów e-mail w postaci pliku csv, który można później zaimportować do programu Outlook lub Mozilla Thunderbird:
Get-ADUser -Filter (mail -ne "null") -i (Enabled -eq "true") -Properties Nazwisko, GivenName, mail | Wybierz nazwę obiektu, nazwisko, imię, adres e-mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $ env: temp \ mail_list.csv
Get-ADUser: eksportuj użytkowników domeny do pliku tekstowego lub pliku CSV / Excel
Wynikową listę użytkowników domeny z atrybutami można przesłać do pliku tekstowego:
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Nazwa, PasswordExpired, PasswordLastSet, PasswordNeverExpires> C: \ temp \ users.txt
Lub możesz przesłać użytkowników AD do pliku CSV, który później zostanie wygodnie wyeksportowany do programu Excel.
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | wybierz Nazwa, Hasło wygasłe, Hasło ostatnieSet, Hasło nieaktualne | Export-csv -path c: \ temp \ user-password-expires-2019.csv -Append -Encoding UTF8
Get-ADUser -Filter: Sortuj i filtruj listę użytkowników AD
Za pomocą parametru -Filtruj Możesz filtrować listę użytkowników według jednego lub więcej atrybutów. Można podać wartości niektórych atrybutów użytkowników Active Directory jako argumenty dla tego parametru. Podczas korzystania z parametru -Filter polecenie cmdlet Get-ADUser wyświetla tylko użytkowników spełniających kryteria filtru..
Na przykład wymienimy konta użytkowników Enabled, których nazwa zawiera „Dmitry„(w poniższym przykładzie zastosowano filtr wielokrotny, można łączyć warunki przy użyciu standardowych operatorów porównania logicznego programu PowerShell):
Get-AdUser -Filter „(podobny do nazwy„ * Dmitry * ”) -i (włączony -eq„ True ”)„ -Properties * | wybierz nazwę, włączony
Opcjonalnie za pomocą sortuj obiekt Możesz posortować listę użytkowników według określonego atrybutu. Możesz również użyć polecenia cmdlet, aby pobrać użytkowników. gdzie. Tutaj możesz również użyć kilku kryteriów filtrowania jednocześnie..
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires -SearchBase 'OU = Moskwa, DC = winitpro, DC = loc' | gdzie $ _. nazwa-jak „* Dmitry *” -i $ _. Włączone -eq $ true | sort-object PasswordLastSet | wybierz obiekt nazwa, hasło wygaśnięcia, hasło, zestaw, hasło, hasło
W ten sposób możesz zbudować tabelę z wszelkimi niezbędnymi atrybutami użytkowników Active Directory.
Get-ADUser: Różne przykłady użycia
Następnie dajemy kilka przydatnych opcji zapytań dla użytkowników Active Directory za pomocą różnych filtrów. Możesz je połączyć, aby uzyskać niezbędną listę użytkowników domeny:
Lista użytkowników AD, których nazwa zaczyna się od Roman:
Get-ADUser -filter jak nazwa „Roman *”
Aby obliczyć całkowitą liczbę wszystkich kont w Active Directory:
Get-ADUser -Filter SamAccountName-like "*" | Zmierz obiekt
Lista wszystkich aktywnych (nie zablokowanych) kont w AD:
Get-ADUser -Filter Enabled -eq „True” | Wybierz obiekt SamAccountName, imię, nazwisko, imię ... | Tabela formatów
Wydrukuj datę utworzenia konta użytkownika w domenie:
get-aduser -Filter * -Properties Nazwa, WhenCreated | Wybierz nazwę, kiedy zostanie utworzona
Lista wszystkich użytkowników utworzonych w ciągu ostatnich 24 godzin (przykład tutaj):
$ lastday = ((Get-Date) .AddDays (-1))
Get-ADUser -filter (whencreated -ge $ lastday)
Lista kont z wygasłym hasłem (hasło jest skonfigurowane w zasadach domeny):
Get-ADUser -filter Enabled -eq $ True -properties nazwa, hasłoExpired | gdzie $ _. PasswordExpired | wybierz nazwę, hasłoexpired
Zadanie: w przypadku listy kont przechowywanych w pliku tekstowym (jedno konto w wierszu) należy pobrać telefon użytkownika z usługi AD i przesłać informacje do pliku tekstowego csv (w celu dalszego wygenerowania raportu w programie Excel).
Import-Csv c: \ ps \ usernsme_list.csv | ForEach
Get-ADUser -identity $ _. Użytkownik-Właściwości Nazwa, numer telefonu |
Wybierz Nazwa, numer telefonu |
Export-CSV c: \ ps \ export_ad_list.csv -Append -Encoding UTF8
Użytkownicy, którzy nie zmienili hasła w ciągu ostatnich 90 dni:
90_Dni = = Get-Date .adddays (-90)
Get-ADUser -filter (passwordlastset -le $ 90_days)
Aby pobrać zdjęcie użytkownika z Active Directory i zapisać je w pliku jpg:
$ user = Get-ADUser winadmin -Properties thumbnailPhoto
$ user.thumbnailPhoto | Set-Content winadmin.jpg -Bajt kodujący
Lista grup, w których znajduje się konto użytkownika
Get-AdUser winadmin -Properties memberof | Wybierz członka-rozwiń właściwość członka
Lista użytkowników z jednostki organizacyjnej, którzy są członkami określonej grupy zabezpieczeń:
Get-ADUser -SearchBase 'OU = Moskwa, DC = winitpro, DC = loc' -Filter * -properties memberof | Where-Object ($ _. Członek-jak „* Administratorzy WKS *”)
Wymień komputery domeny, do których użytkownik może wejść (ograniczenie poprzez atrybut LogonWorkstations):
Get-ADUser AIvanov -Properties LogonWorkstations | Nazwa listy formatów, stacje robocze logowania