Eksport użytkowników z Active Directory jest jedną z częściej wykonywanych czynności. Często zdarza się, że potrzebujemy przygotować listę użytkowników, aby założyć im konta w inne aplikacji, sprawdzić podstawowe dane o kontach użytkowników, aby wnieść do nich poprawki etc.
W tym wpisie zajmę się eksportem użytkowników przy pomocy polecenia PowerShell. Zaczniemy od podstawowego działania, rozbudowując je w miarę potrzeby o kolejne ciekawe możliwości.
Testową maszyną będzie Windows Server 2019 z Power Shell w wersji 5.1.
Get-ADUser Polecenie programu PowerShell
Wszelkiego rodzaju informacje dotyczące „parametrów” użytkownika (a będąc precyzyjnym jego konta) pozwala pobrać polecenie Get-ADUser dostępne w PowerShell’u.
Polecenie cmdlet Get-ADUser pobiera określony obiekt użytkownika lub przeprowadza wyszukiwanie w celu uzyskania wielu obiektów użytkownika.
Parametr Identity określa użytkownika usługi Active Directory, który ma zostać pobrany. Użytkownika można zidentyfikować na podstawie jego nazwy wyróżniającej (DN), identyfikatora GUID, identyfikatora zabezpieczeń (SID) lub nazwy konta Menedżera kont zabezpieczeń (SAM). Możesz również ustawić parametr na zmienną obiektu użytkownika, taką jak $<localUserObject> lub przekazać obiekt użytkownika przez potok (|) do parametru tożsamości.
Aby wyszukać i pobrać więcej niż jednego użytkownika, użyj parametrów Filtr lub LDAPFilter. Parametr Filter używa języka wyrażeń programu PowerShell do zapisywania ciągów zapytań dla usługi Active Directory. Składnia języka wyrażeń programu PowerShell zapewnia zaawansowaną obsługę konwersji typów dla typów wartości odbieranych przez parametr Filter. Aby uzyskać więcej informacji na temat składni parametru filtru, wpisz Get-Help. Jeśli masz istniejące ciągi zapytań protokołu LDAP (Lightweight Directory Access Protocol), możesz użyć parametru LDAPFilter.
Ten cmdlet pobiera domyślny zestaw właściwości (properties) obiektu użytkownika. Aby pobrać dodatkowe właściwości, użyj parametru Properties.
Get-ADUser wszystkie właściwości
Dla przykładu poniżej fragment wynikowy polecenia Get-AdUser w bardzo podstawowej wersji, które pokazuje wszystkie właściwości konta użytkownika beitadminpl w konsoli.
1 |
get-aduser -identity beitadminpl -Properties * |
Get-ADUser eksport właściwości do pliku.csv
Powyższe polecenie pokazało wszystkie właściwości wskazanego użytkownika w konsoli, co w przypadku gdy chcemy te właściwości zapisać do pliku .csv? Nic prostszego, dodajmy export.
1 |
get-aduser -identity beitadminpl -Properties * | export-csv -path c:\temp\export.csv |
Plik .csv można zaimportować do Excel’a, celem przygotowania ładnego raportu, poniżej fragment
Get-AdUser eksport konkretnych właściwości
Jeśli nie chcesz eksportować wszystkich atrybutów użytkownika, użyj polecenia Select i wprowadź tylko potrzebne atrybuty. Wiesz już w jaki sposób wyświetlić oraz wybrać niezbędne właściwości.
W poniższym przykładzie wyeksportuję jedynie trzy właściwości: nazwę wyświetlaną konta, email oraz telefon. Dodanie | export-csv -path c:\temp\export.csv na końcu poniższego polecenia pozwoli dodatkowo na eksport tych trzech właściwości do pliku .csv.
1 |
get-aduser -identity beitadminpl -Properties * | select displayname, EmailAddress, telephonenumber |
Get-ADUser eksport wszystkich użytkowników
Wyświetlenie właściwości jedynie dla pojedynczego użytkownika nie jest zbyt optymalne, dlatego też Get-ADUser, pozwala na dodanie parametru, który pozwoli na eksport wszystkich użytkowników w AD.
Konieczne jest usunięcie -identity oraz zastąpienie tego parametru nowym -filter. Dodałem drugiego użytkownika (beitadminpl2), bez wypełnionych pól: email oraz numeru telefonu. Wiersze nie zawierające żadnych danych, to konta Administratora oraz dwa wyłączone konta, które nie mają wypełnionych pól takich jak: wyświetlana nazwa, email oraz numer telefonu.
1 |
get-aduser -filter * -Properties * | select displayname, EmailAddress, telephonenumber |
Get-ADUser eksport tylko aktywnych użytkowników
W poprzednim poleceniu dodałem -filter *, jednak warto wiedzieć, że możliwe jest wyfiltrowanie konkretnych parametrów, a jednym z nich jest aktywne (włączone) konta użytkownika.
1 |
get-aduser -filter {Enabled -eq $true} -Properties * | select displayname, EmailAddress, telephonenumber |
Podsumowanie
W tym wpisie przedstawiłem, kilka ciekawych możliwości, które daje polecenie Get-ADUser w PowerShell. Oczywiście nie wyczerpuje on wszystkich możliwości, jednak te pokazane powyżej, pomogą w sprawnej pracy z użytkownikami Active Directory.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).