Menggunakan Get-ADUser untuk Mendapatkan Informasi Berbeda tentang Pengguna Domain AD

Dapatkan-aduser Ini adalah salah satu cmdlet PowerShell utama yang dapat Anda gunakan untuk mendapatkan berbagai informasi tentang pengguna Active Directory dan atributnya. Menggunakan cmdlet Get-ADUser, Anda bisa mendapatkan nilai atribut apa pun dari akun pengguna AD, menampilkan daftar pengguna di domain dengan atribut yang diperlukan dan mengekspornya ke CSV, dan menggunakan berbagai kriteria untuk memilih pengguna domain..

Cmdlet Get-ADUser telah tersedia sejak PowerShell 2.0 dan merupakan bagian dari modul Direktori Aktif khusus, Modul Direktori Aktif untuk Windows PowerShell (diperkenalkan pada Windows Server 2008 R2). Cmdlet RSAT-AD-PowerShell memungkinkan Anda untuk melakukan berbagai operasi pada objek direktori AD.

Catatan. Sebelumnya, saya harus menggunakan berbagai alat untuk mendapatkan informasi tentang atribut akun pengguna AD: konsol ADUC (termasuk permintaan AD yang disimpan), skrip vbs, utilitas dsquery, dll. Semua alat ini dapat dengan mudah mengganti cmdlet Get-ADUser..

Dalam contoh ini, kami akan menunjukkan cara menggunakan cmdlet PowerShell Get-ADUser untuk mendapatkan informasi tentang waktu kata sandi pengguna terakhir kali diubah, kata sandi kadaluwarsa, dan data pengguna lainnya.

Konten:

  • Cara menemukan pengguna di AD dan menampilkan propertinya menggunakan Get-ADUser?
  • Mengambil Pengguna dari Banyak OU Menggunakan Get-ADUser
  • Dapatkan Alamat Email Pengguna dari AD
  • Get-ADUser: ekspor pengguna domain ke teks atau file CSV / Excel
  • Get-ADUser -Filter: Menyortir dan memfilter daftar pengguna AD
  • Get-ADUser: Contoh Penggunaan Berbeda

Cara menemukan pengguna di AD dan menampilkan propertinya menggunakan Get-ADUser?

Untuk menggunakan modul RSAT-AD-PowerShell, Anda harus memulai konsol PowerShell dengan hak administrator dan mengimpor modul dengan perintah:

Direktori aktif Modul Impor

Pada Windows Server 2012 dan yang lebih baru, modul RSAT-AD-PowerShell diinstal secara default ketika peran Layanan Domain Direktori Aktif (AD DS) dikerahkan ke server. Untuk menginstal modul pada server anggota domain, jalankan perintah:

Instal-WindowsFeature -Nama "RSAT-AD-PowerShell" -Termasuk AllSubFeature

Di versi desktop Windows (misalnya, di Windows 10) agar komandan Get-AdUser berfungsi, Anda perlu menginstal versi RSAT yang sesuai dan mengaktifkan komponen di Control Panel Modul Direktori Aktif untuk Windows PowerShell (Alat Administrasi Server Jarak Jauh -> Alat Administrasi Peran -> Alat AD DS dan LDS AD -> Alat AD DS).

Anda dapat menginstal modul AD dari PowerShell:

Add-WindowsCapability -online -Name “Rsat.ActiveDirectory.DS-LDS.Tools ~~~~ 0.0.1.0”

Ada juga cara untuk menggunakan modul RSAT-AD-PowerShell tanpa menginstalnya di komputer Anda. Cukup salin file utama dan impor modul ke sesi PoSh:

Modul Impor "C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.dll"
Modul Impor "C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.resources.dll"

Daftar lengkap semua argumen untuk cmdlet Get-ADUser dapat diperoleh sebagai berikut:

bantu Get-ADUser

Untuk menggunakan cmdlet Get-ADUser, Anda tidak harus menggunakan akun dengan hak administrator domain. Setiap pengguna domain AD resmi dapat menjalankan perintah PowerShell untuk mendapatkan nilai dari sebagian besar atribut objek AD (kecuali yang dilindungi, lihat contoh LAPS). Jika Anda perlu menjalankan perintah Get-ADUser dari akun yang berbeda, gunakan parameter Kredensial.

Untuk mendaftar semua akun domain, jalankan perintah:

Dapatkan-ADUser -filter *

Itu penting. Tidak disarankan untuk menjalankan perintah ini dalam domain AD dengan sejumlah besar akun, seperti mungkin kelebihan pengontrol domain yang menyediakan data.

Untuk mengubah atribut pengguna, gunakan cmdlet Set-ADUser.

Secara default, cmdlet Get-ADUser mengembalikan hanya 10 atribut dasar (dari lebih dari 120 properti akun pengguna): DistinguishedName, SamAccountName, Nama, SID, UserPrincipalName, ObjectClass, status akun (Diaktifkan: Benar / Salah sesuai dengan atribut UserAccountControl), dan t .d.

Output cmdlet tidak mengandung informasi tentang waktu perubahan kata sandi pengguna terakhir.

Untuk menjalankan permintaan pada pengontrol domain tertentu, - Parameter server digunakan:

Dapatkan-ADUSer -Server DC01.winitpro.loc -Identity tstuser

Untuk menampilkan informasi lengkap tentang semua atribut pengguna tuser yang tersedia, jalankan perintah:

Dapatkan-ADUser -identity tuser -Properti *

Dapatkan-ADUser Cmdlet dengan Parameter Properti * daftar semua atribut pengguna AD dan nilainya.

Mari kita coba mengubah parameter dari perintah Get-ADUser untuk menampilkan hanya atribut pengguna yang kita butuhkan. Anda dapat menampilkan beberapa atribut pengguna sekaligus:

  • Kata sandi sudah kedaluwarsa
  • PasswordLastSet
  • PasswordNeverExpires
  • lastlogontimestamp

Jalankan perintah:

Get-ADUseruser pengguna -properti Kata sandiExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp

Sekarang informasi pengguna berisi informasi tentang status akun (Kedaluwarsa: Benar / Salah), tanggal kata sandi diubah, dan waktu masuk terakhir ke domain (lastlogontimestamp). Kami menyajikan informasi dalam bentuk tabel yang lebih nyaman dan menghapus semua atribut yang tidak perlu menggunakan Select-Object -Property atau Format-Table:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Mengambil Pengguna dari Banyak OU Menggunakan Get-ADUser

Untuk menghapus pengguna hanya dari wadah domain tertentu (OU), gunakan opsi SearchBase:

Get-ADUser -SearchBase 'OU = Moskow, DC = winitpro, DC = loc' -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Jika Anda perlu memilih pengguna dari beberapa OU sekaligus, gunakan konstruksi berikut:

$ OUs = "OU = Moskow, DC = winitpro, DC = lokal", "OU = SPB, DC = winitpro, DC = loc"
$ OUs | foreach Get-ADUser -SearchBase $ _ -Filter * | pilih Nama, Diaktifkan

Dapatkan Alamat Email Pengguna dari AD

Email pengguna adalah salah satu atribut di Active Directory. Untuk mencantumkan alamat email pengguna, Anda harus menambahkan bidang Alamat Email ke bidang yang dipilih pada cmdlet Get-ADUser.

Get-ADUser -filter * -properties EmailAddress -SearchBase 'OU = MSK, DC = winitpro, DC = loc' | pilih-objek Nama, Alamat Email

Daftar akun aktif dengan alamat surat:

Get-ADUser -Filter (mail -ne "null") -and (Diaktifkan -eq "true") -Properties Surname, GivenName, mail | Select-Object Name, Nama Keluarga, GivenName, mail | Format-tabel

Daftar pengguna yang tidak memiliki alamat email:

Get-ADUser -Filter * -Properties EmailAddress | di mana -Property EmailAddress -eq $ null

Contoh berikut memungkinkan Anda untuk membongkar buku alamat dari alamat email perusahaan dalam bentuk file csv, yang nantinya dapat diimpor ke Outlook atau Mozilla Thunderbird:

Get-ADUser -Filter (mail -ne "null") -and (Diaktifkan -eq "true") -Properties Surname, GivenName, mail | Select-Object Name, Nama Keluarga, GivenName, mail | Ekspor-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $ env: temp \ mail_list.csv

Get-ADUser: ekspor pengguna domain ke teks atau file CSV / Excel

Daftar pengguna domain dengan atribut yang dihasilkan dapat diunggah ke file teks:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires> C: \ temp \ users.txt

Atau Anda dapat mengunggah pengguna AD ke file CSV, yang nantinya akan diekspor dengan mudah ke Excel.

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | pilih Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Ekspor-csv -path c: \ temp \ user-password-expires-2019.csv -Tambahkan -Encoding UTF8

Get-ADUser -Filter: Menyortir dan memfilter daftar pengguna AD

Menggunakan parameter -Saring Anda dapat memfilter daftar pengguna dengan satu atribut atau lebih. Anda bisa menentukan nilai atribut tertentu dari pengguna Direktori Aktif sebagai argumen untuk parameter ini. Saat menggunakan parameter -Filter, cmdlet Get-ADUser hanya akan mencantumkan pengguna yang cocok dengan kriteria filter..

Misalnya, kami akan mencantumkan akun pengguna yang Diaktifkan yang namanya berisi "Dmitry"(contoh di bawah ini menggunakan beberapa filter, Anda dapat menggabungkan kondisi menggunakan operator perbandingan logis PowerShell standar):

Get-AdUser -Filter "(Seperti-nama '* Dmitry *') -dan (Diaktifkan -eq 'Benar')" -Properti * | pilih nama, diaktifkan

Opsional menggunakan mengurutkan-objek Anda dapat mengurutkan daftar pengguna berdasarkan atribut tertentu. Anda juga dapat menggunakan cmdlet untuk menjemput pengguna. dimana. Di sini Anda juga dapat menggunakan beberapa kriteria pemfilteran sekaligus..

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires -SearchBase 'OU = Moskow, DC = winitpro, DC = loc' | di mana $ _ .nama -seperti "* Dmitry *" -dan $ _. Diaktifkan -eq $ true | sort-object PasswordLastSet | pilih-objek Nama, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Dengan demikian, Anda bisa membuat tabel dengan atribut yang diperlukan pengguna Active Directory.

Get-ADUser: Contoh Penggunaan Berbeda

Selanjutnya, kami berikan beberapa opsi permintaan yang berguna untuk pengguna Active Directory menggunakan berbagai filter. Anda dapat menggabungkan mereka untuk mendapatkan daftar pengguna domain yang diperlukan:

Cantumkan pengguna AD yang namanya dimulai dengan Romawi:

Dapatkan-ADUser -filter name -like "Roman *"

Untuk menghitung jumlah total semua akun di Direktori Aktif:

Get-ADUser -Filter SamAccountName -like "*" | Measure-Object

Daftar semua akun aktif (tidak diblokir) dalam AD:

Get-ADUser -Filter Diaktifkan -eq "True" | Select-Object SamAccountName, Name, Surname, GivenName | Format-tabel

Cetak tanggal pembuatan akun pengguna di domain:

get-aduser -Filter * -Nama Properti, WhenCreated | Pilih nama, saat Diciptakan

Daftar semua pengguna yang dibuat dalam 24 jam terakhir (contoh dari sini):

$ lastday = ((Get-Date) .AddDays (-1))
Dapatkan-ADUser -filter (whencreated -ge $ lastday)

Daftar akun dengan kata sandi yang kedaluwarsa (kata sandi dikonfigurasikan dalam kebijakan domain):

Get-ADUser -filter Diaktifkan -eq $ True -properti name, passwordExpired | di mana $ _. PasswordExpired | pilih nama, kata sandi expired

Anda dapat menggunakan cmdlet Get-AdUser dan Add-ADGroupMember untuk membuat grup pengguna AD dinamis (tergantung kota, posisi, atau departemen).

Tugas: untuk daftar akun yang disimpan dalam file teks (satu akun per baris), Anda perlu mendapatkan telepon pengguna dari AD dan mengunggah informasi ke file csv teks (untuk pembuatan laporan lebih lanjut dalam Excel).

Impor-Csv c: \ ps \ usernsme_list.csv | ForEach
Dapatkan-ADUser -identity $ _. Pengguna -Nama Properti, telephoneNumber |
Pilih Nama, nomor telepon |
Ekspor-CSV c: \ ps \ export_ad_list.csv -Tambahkan -Encoding UTF8

Pengguna yang belum mengubah kata sandi mereka dalam 90 hari terakhir:

$ 90_Days = (Get-Date) .adddays (-90)
Get-ADUser -filter (passwordlastset -le $ 90_days)

Untuk mendapatkan foto pengguna dari Active Directory dan menyimpannya dalam file jpg:

$ user = Get-ADUser winadmin -Properties thumbnailPhoto
$ user.thumbnailFoto | Set-Content winadmin.jpg -Encoding byte

Daftar grup di mana akun pengguna berada

Dapatkan-AdUser winadmin -Properti anggotaof | Pilih anggota -properti anggota perkebunan

Daftar pengguna dari OU yang merupakan anggota grup keamanan tertentu:

Get-ADUser -SearchBase 'OU = Moscow, DC = winitpro, DC = loc' -Filter * -properties memberof | Where-Object ($ _. Memberof-like “* WKS admin *")

Cantumkan komputer domain yang diizinkan untuk dimasukkan pengguna (pembatasan melalui atribut LogonWorkstations):

Dapatkan-ADUser AIvanov -Properti LogonWorkstations | Nama Format-Daftar, LogonWorkstations

Kiat. Untuk mendapatkan informasi tentang komputer Active Directory, gunakan cmdlet Get-ADComputer.