Nyahmuat senarai pengguna daripada powershell iklan. Cara mendapatkan senarai kumpulan AD terpilih yang menjadi ahli senarai besar pengguna

Selamat petang wahai pembaca sekalian dan pelanggan, kami terus meneroka keupayaan Powershell dan Active Directory. Bagaimana anda mengingati segala-galanya tentang dia? Akaun pengguna dan komputer berada dalam pangkalan data NTDS.dit, semuanya hebat dan berpusat. Apabila syarikat mempunyai lebih daripada satu pentadbir sistem, situasi mungkin timbul di mana sampah dan bukti kelayakan yang tidak diperlukan terkumpul. Kita semua manusia dan kita boleh melupakan beberapa perkara, dan pada beberapa ketika kita boleh terganggu, yang juga akan menyebabkan lupa maklumat penting. Dan kami sampai pada kesimpulan bahawa Direktori Actvie tidak terkumpul pengguna aktif(dipecat atau dilupakan), sama ada cara, baik Pentadbir Sistem mesti mengenal pasti mereka, melumpuhkannya dan kemudian memadamnya jika dikehendaki, itulah yang akan kami lakukan.

Melalui ADUC snap-in

Kali terakhir saya sudah memberi anda contoh penggunaan Aktif snap-in Pengguna Direktori dan komputer, yang melaluinya kami mencari komputer yang hilang pada rangkaian tempatan yang tidak muncul selama sebulan. Sekarang kita akan melakukan perkara yang sama dengan akaun pengguna. Saya mempunyai AD Pelayan Windows 2012 R2, buka ADUC, untuk melakukan ini, tekan WIN+R dan masukkan dsa.msc.

Dalam borang permintaan yang terbuka, masukkan:

  • Minta nama > bagi saya ini adalah pengguna yang hilang
  • Penerangan jika perlu
  • Minta akar > di sini anda boleh meninggalkan keseluruhan domain, atau nyatakan pada OU yang dikehendaki

Kemudian klik butang permintaan.

Pada tab pengguna kami melihat item "Bilangan hari sejak log masuk terakhir" sebagai contoh, saya menetapkannya kepada 60 hari.

Akibatnya, anda akan menerima senarai akaun pekerja tidak aktif yang anda perlukan.

Melalui powershell snap-in

Perkara yang sama boleh dilakukan melalui Powershell. Saya akan segera memberi anda kod yang tugasnya pencarian sedang dijalankan pengguna tidak aktif, untuk ini saya memilih tempoh 45 hari, melumpuhkan data pengguna dan mengalihkannya ke OU yang ditetapkan khas.

$date_with_offset= (Get-Date).AddDays(-45)
$users = Get-ADUser -Properties LastLogonDate -Filter (LastLogonDate -lt $date_with_offset ) | Isih LastLogonDate
foreach ($user in $users) (set-aduser $user -enabled $false; move-adobject -identity $user -targetpath "ou=Fired,ou=Moscow L. users,ou=Location,dc=msk,dc= contoso,dc=com")
Get-ADUser -Properties LastLogonDate -Filter (LastLogonDate -lt $date_with_offset ) | Isih LastLogonDate | Nama FT, LastLogonDate -AutoSize | Fail Luar c:\Script\users.txt

  • Dalam baris pertama anda mengisytiharkan pembolehubah di mana anda menetapkan istilah carian
  • Buat pembolehubah dan buat pilihan berdasarkan masa log masuk terakhir
  • Pengguna yang bergerak

  • Membuat laporan kepada fail

Perkara yang lebih berguna tentang bekerja dengan pengguna. Sebelum menggunakan arahan di bawah, anda perlu memuat turun Modul aktif Direktori, melalui arahan

Dapatkan-Bantuan Dapatkan-ADUuser

Skrip untuk memunggah semua pengguna daripada MS Active Directory (ITGC)

Ivan Piskunov

Satu daripada prosedur standard menjalankan audit ITGC untuk katalog Direktori Aktif adalah untuk mendapatkan muat turun semua pengguna domain. Berdasarkan data yang diperoleh, prosedur ujian kemudiannya dibentuk, contohnya, mengkaji senarai pentadbir atau mengenal pasti pengguna dengan kata laluan yang telah tamat tempoh. Cara paling berkesan untuk membuat muat naik sedemikian adalah dengan menggunakan antara muka standard PowerShell , contoh yang akan kita pertimbangkan dalam artikel ini

1. Muat naik ekspres menggunakan skrip PowerShell

Di bawah ialah Skrip PowerShell, sebagai salah satu yang paling mudah dan cara cepat dapatkan senarai semua pengguna domain AD dalam format CSV, yang boleh dibuka tanpa sebarang masalah dalam Excel.

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = "LDAP://ou=Users,ou=Departmets,dc=test,dc=ru" $objSearcher.Filter = "(&(objectCategory=person) (!userAccountControl:1.2.840.113556.1.4.803:=2))" $users = $objSearcher.FindAll() # Bilangan akaun $users.Count $users | ForEach-Object ($user = $_.Properties New-Object PsObject -Property @( Position = $user.description Department = $user.department Login = $user.userprincipalname Telefon = $user.telephonenumber Room = $user.physicaldeliveryofficename Penuh nama = $user.cn ) ) | Eksport-Csv -NoClobber -Pengekodan utf8 -Laluan C: list_domain_users.csv

Agar skrip berfungsi pada sistem anda, anda perlu membetulkannya sedikit, iaitu masukkan parameter yang diperlukan, i.e. bagaimana dalam dalam contoh ini ini adalah parameter Pengguna dalam jabatan Jabatan dalam domain Test.ru. Dan juga menunjukkan laluan ke mana fail disimpan list_domain_users.csv

Selepas memunggah, jika anda membukanya dengan segera list_domain_users.csv , akan kelihatan tidak boleh dibaca, bagaimanapun, menggunakan cara standard kita boleh membawanya ke dalam format yang kita perlukan dengan mudah. Buka dalam Excel list_domain_users.csv , pilih lajur pertama, kemudian pergi ke tab "Data" dan klik "Teks mengikut Lajur". Pilih "terhad" dan klik "Seterusnya". sedia!

!Perlu ambil perhatian, Apa skrip ini tidak akan memaparkan lebih daripada 1000 pengguna. Untuk syarikat kecil Ia agak sesuai, tetapi bagi mereka yang mempunyai sejumlah besar pengguna dalam domain mereka, mereka harus menggunakan kaedah yang diterangkan di bawah.

2. Cmdlet PowerShell Terperinci untuk menerima muat naik Pengguna aktif Direktori

Modul Active Directory untuk alat Windows PowerShell (diperkenalkan dalam Windows Server 2008 R2 dan lebih tinggi) membolehkan anda mencipta cmdlet yang melakukan pelbagai manipulasi dengan objek direktori AD. Cmdlet digunakan untuk mendapatkan maklumat tentang pengguna dan sifat mereka Dapatkan-ADUser.

Untuk mula melancarkan tetingkap Powershell dengan hak pentadbir dan import modul Active Directory untuk tindakan selanjutnya:
Import-Modul Activedirectory

Kepada senaraikan semua akaun domain Mari jalankan arahan:

Dapatkan-ADUser -penapis *

Kepada menarik diri penuh dengan maklumat tentang semua atribut yang ada pengguna tuser, jalankan arahan

Dapatkan-ADUser -identity tuser -properties *


Sebagai contoh, kami berminat dengan maklumat tentang tarikh pertukaran kata laluan dan masa apabila ia tamat tempoh . Hasil arahan boleh dieksport ke fail teks:

Get-ADUser -filter * -properties Kata LaluanLuput, Kata LaluanSet Terakhir, Kata LaluanNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:tempusers.txt

Atau segera muat naik ke CSV , yang mudah untuk dieksport ke Excel pada masa hadapan (selain itu, menggunakan objek isihan kami akan mengisih jadual mengikut lajur PasswordLastSet, dan juga menambah di mana keadaan– nama pengguna mesti mengandungi rentetan "Dmitry")

Get-ADUser -filter * -properties Kata LaluanLuput, Kata LaluanSet Terakhir, Kata LaluanNeverExpires | di mana ($_.nama –seperti “*Dmitry*”) | sort-object PasswordLastSet | Nama objek pilih, Kata Laluan Tamat Tempoh, PasswordLastSet, Kata LaluanNeverExpires | Export-csv -path c:tempuser-password-expires-2015.csv

Dalam ulasan pada artikel sebelumnya, kami teringat tentang perakaunan dalam Excel dan bukannya 1C. Baiklah, mari semak sejauh mana anda mengetahui Excel. Hari ini saya akan menunjukkan kepada anda cara mendapatkan data daripada Active Directory dan bekerja dengannya tanpa makro dan PowerShell - hanya dengan mekanisme Office standard. Contohnya, anda boleh mendapatkan analitik dengan mudah tentang penggunaan sistem pengendalian dalam organisasi anda jika anda belum mempunyai sesuatu seperti Microsoft SCOM. Baiklah, atau sekadar memanaskan badan dan alihkan fikiran anda daripada skrip.


Sudah tentu, anda boleh mendapatkan data seperti dalam contoh di bawah secara literal dengan satu baris dalam PowerShell. Tetapi, pertama, PowerShell terlalu membosankan, dan kedua, Excel boleh mengemas kini data secara dinamik - dokumen yang terhasil boleh diterbitkan dalam talian dan terlupa tentang mengemas kininya.

Untuk bekerja dengan data, saya akan menggunakan mekanisme Power Query. Untuk Office 2010 dan 2013 anda perlu memasang pemalam, dalam Microsoft Office 2016 modul ini sudah terbina dalam. Malangnya, edisi standard tidak mencukupi untuk kami;


Mekanisme itu sendiri direka untuk menerima dan memproses data daripada pelbagai sumber - daripada ODBC lama dan fail teks, kepada Exchange, Oracle dan Facebook. Butiran lanjut tentang mekanisme dan bahasa skrip terbina dalam "M" telah ditulis pada Habré, tetapi saya akan melihat beberapa contoh penggunaan Power Query untuk mendapatkan semula data daripada Active Directory.

Memanaskan badan: Mari lihat apabila pengguna kami log masuk

Permintaan kepada pangkalan data domain itu sendiri dibuat pada "Data - Permintaan baru― Daripada sumber lain ― Daripada Active Directory.”



Nyatakan sumber data.


Anda perlu memilih nama domain dan memberikan maklumat sambungan yang diperlukan. Seterusnya, pilih jenis objek, dalam contoh ini - pengguna. Di sebelah kanan dalam tetingkap pratonton, pertanyaan sudah dijalankan, menunjukkan pratonton data.



Kami menyediakan permintaan dan mengagumi pratonton.


Anda harus menyediakan permintaan anda terlebih dahulu dengan mengklik butang "edit" dan memilih lajur yang diperlukan. Pada asasnya, lajur ini ialah kelas Setiap daripadanya mengandungi set atribut khusus objek Direktori Aktif, kecuali lajur utama nama paparan, yang merupakan atribut. Saya akan fokus pada kelas pengguna, orang, atas Dan keselamatanPengetua. Sekarang anda perlu memilih atribut yang diperlukan daripada setiap kelas menggunakan "sambungan" - ikon dengan dua anak panah pada pengepala lajur:

  • Kelas pengguna mengembangkan dengan memilih lastLogonTimestamp Dan userAccountControl;
  • V orang jom pilih nombor telefon;
  • V ataswhenCreated;
  • dan dalam keselamatanPengetuaSamAccountName.


Kami memperluaskan permintaan.


Sekarang mari kita sediakan penapis: khususnya, untuk tidak mendapat akaun yang disekat, atribut userAccountControl mesti mempunyai nilai 512 atau 66048. Penapis mungkin berbeza dalam persekitaran anda. Anda boleh membaca lebih lanjut mengenai atribut dalam dokumentasi Microsoft.



Menggunakan penapis.


Kadangkala Excel tersalah mengesan format data, terutamanya nilai atribut lastLogonTimestamp. Jika bencana sedemikian tiba-tiba menimpa anda, anda boleh menetapkan format yang betul pada tab "Tukar".

Kini lajur userAccountControl harus dipadamkan - ia tidak diperlukan sama sekali dalam paparan. Dan klik "Muat turun dan tutup".


Hasilnya adalah pinggan yang hanya memerlukan sedikit sentuhan kemasan. Sebagai contoh, namakan semula lajur kepada sesuatu yang lebih mudah dibaca. Dan sesuaikan kemas kini automatik data.


Kemas kini automatik apabila membuka jadual atau tamat masa dikonfigurasikan dalam tab "Data" dalam "Properties".



Menyediakan kemas kini data.


Selepas menyediakan kemas kini selesai, anda boleh memberikan jadual dengan selamat kepada jabatan kakitangan atau perkhidmatan keselamatan - beritahu mereka siapa yang log masuk ke sistem dan bila.


Kod permintaan dalam bahasa "M" berada di bawah spoiler.

biarkan Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Kategori Objek"], user1 = domain.ru(), #"Remote Columns" = Table.RemoveColumns(user1,( "organizationalPerson", "shadowAccount", "posixAccount", "msExchOmaUser", "msExchBaseClass", "msExchIMRecipient", "msExchCertificateInformation", "msExchMultiMediaUser", "msExchMailStorage", "msExchCustomAttributes", "disting") #"Expand element securityPrincipal" = Table.ExpandRecordColumn(#"ExpandRecordColumn(#"Alih Keluar Lajur", "securityPrincipal", ("sAMAccountName"), ("sAMAccountName")), #"Expand Elemen atas" = Table.ExpandRecordColumn(#"Expand element securityPrincipal ", "atas", ("whenCreated"), ("whenCreated")), #"Expand element person" = Table.ExpandRecordColumn(#"Expand element top", "person", ("telephoneNumber"), ("telephoneNumber ")), #"Pengguna elemen dikembangkan" = Table.ExpandRecordColumn(#"Orang elemen dikembangkan", "pengguna", ("lastLogonTimestamp", "userAccountControl"), ("lastLogonTimestamp", "userAccountControl")), #"Rows dengan penapis digunakan" = Jadual.SelectRows(#"Elemen pengguna dikembangkan", setiap satu ( = 512 atau = 66048)), #"Jenis yang diubah" = Jadual.TransformColumnTypes(#"Baris dengan penapis digunakan",(("lastLogonTimestamp", taip datetime))), #"Lajur terpencil1" = Jadual.Alih Keluar Lajur(#"Jenis ditukar",("Kawalan Akaun Pengguna")) dalam #"Lajur Jauh1"

Mencipta buku alamat, atau perkara yang perlu dilakukan apabila portal korporat tidak mesra dengan AD

Satu lagi varian menggunakan Excel bersempena dengan Active Directory - ini ialah pembentukan buku alamat berdasarkan data AD. Ia adalah jelas bahawa Buku alamat Ia akan relevan hanya jika domain itu teratur.


Mari buat permintaan untuk objek pengguna, kembangkan kelas pengguna V mel, dan kelas orang V nombor telefon. Mari padamkan semua lajur kecuali DistinguishedName― struktur domain mengulangi struktur perusahaan, jadi nama Unit Organisasi sesuai dengan nama jabatan. Begitu juga, kumpulan keselamatan boleh digunakan sebagai asas untuk nama jabatan.


Sekarang dari barisan CN=Nama Pengguna, OU=Jabatan Perakaunan, OU=Bahagian, DC=domain, DC=ru anda perlu mengekstrak nama jabatan secara langsung. Cara paling mudah untuk melakukan ini ialah menggunakan pembatas pada tab Transform.



Mengekstrak teks.


Sebagai pembatas yang saya gunakan OU= Dan ,OU=. Pada dasarnya, koma sudah cukup, tetapi saya bermain dengan selamat.



Masukkan pembatas.


Sekarang menggunakan penapis anda boleh memotong yang tidak perlu OU, seperti pengguna yang disekat dan terbina, konfigurasikan pengisihan dan muatkan data ke dalam jadual.



Pandangan jadual ringkasan.

Laporan pantas tentang komposisi stesen kerja, tanpa memperkenalkan agen atau penyediaan lain

Sekarang mari cuba buat jadual yang berguna dengan mendapatkan data pada komputer. Mari buat laporan mengenai sistem pengendalian yang digunakan oleh syarikat: untuk ini kami akan membuat permintaan, tetapi kali ini dalam navigator kami akan memilih komputer.



Kami membuat permintaan untuk objek komputer.


Mari tinggalkan kelas lajur komputer Dan atas dan mengembangkannya:

  • Kelas komputer mengembangkan dengan memilih cn, sistem operasi, operatingSystemServicePack Dan operatingSystemVersion;
  • di dalam kelas atas jom pilih whenCreated.


Permintaan lanjutan.


Jika mahu, anda boleh membuat laporan hanya pada sistem pengendalian pelayan. Contohnya, tapis mengikut operatingSystem atau operatingSystemVersion atribut. Saya tidak akan melakukan ini, tetapi saya akan membetulkan paparan masa penciptaan - Saya hanya berminat pada tahun itu. Untuk melakukan ini, pada tab "Penukaran", pilih lajur yang kami perlukan dan pilih "Tahun" dalam menu "Tarikh".



Kami mengekstrak tahun dari masa komputer memasuki domain.


Sekarang yang tinggal hanyalah memadamkan lajur nama paparan sebagai tidak perlu dan memuatkan hasilnya. Data sudah sedia. Kini anda boleh bekerja dengan mereka seperti dengan meja biasa. Mula-mula, mari buat jadual pangsi pada tab "Sisipkan" - " Jadual pangsi" Mari kita bersetuju dengan pilihan sumber data dan mengkonfigurasi medannya.



Tetapan medan jadual pangsi.


Kini yang tinggal hanyalah menyesuaikan reka bentuk mengikut citarasa anda dan mengagumi hasilnya:



Jadual ringkasan untuk komputer dalam AD.


Jika mahu, anda boleh menambah jadual ringkasan, juga pada tab Sisip. Dalam "Kategori" (atau dalam "Baris", secukup rasa) tambah sistem operasi, kepada data ― cn. Pada tab "Reka Bentuk", anda boleh memilih jenis carta yang anda suka;



Carta pai.


Kini jelas kelihatan bahawa, walaupun kemas kini berterusan, jumlah stesen kerja dengan Windows XP dan pelayan dengan Windows 2003 adalah agak besar. Dan ada sesuatu yang perlu diusahakan.


Kod permintaan berada di bawah spoiler.

biarkan Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Kategori Objek"], computer1 = domain.ru(), #"Remote Columns" = Table.RemoveColumns(computer1,( "pengguna", "Orang organisasi", "orang")), #"Lajur lain yang dialih keluar" = Table.SelectColumns(#"Lajur terpencil",("displayName", "komputer", "atas")), #"Kembangkan item komputer" = Jadual.ExpandRecordColumn(#"Lajur jauh lain", "komputer", ("cn", "operatingSystem", "operatingSystemServicePack", "operatingSystemVersion"), ("cn", "operatingSystem", "operatingSystemServicePack", " operatingSystemVersion")), #"Elemen atas lanjutan" = Table.ExpandRecordColumn(#"Elemen komputer yang dikembangkan", "atas", ("apabila Dicipta"), ("apabila Dicipta")), #"Tahun yang diekstrak" = Jadual.TransformColumns( #"Atas elemen dikembangkan",(("whenCreated", Date.Year))), #"RemovedColumns1" = Table.RemoveColumns(#"Extracted Year",("displayName")) dalam #"RemoveColumns1"

Tambah Label Digunakan untuk mencipta, mengedit dan memadam objek direktori. Pengguna juga boleh menggunakan arahan ldifde untuk mengembangkan skema, eksport maklumat Aktif Maklumat pengguna dan kumpulan direktori ke aplikasi atau perkhidmatan lain, dan untuk mengisi perkhidmatan ADAM (Mod Aplikasi Direktori Aktif) dengan data daripada perkhidmatan direktori lain.

Sintaks

ldifde [-i] [-f nama fail] [-s nama pelayan] [-c baris1 baris2] [-v] [-j laluan] [-t port_nombor] [-d DN_base] [-r penapis_LDAP] [-hlm wilayah] [-l LDAP_attribute_list] [-o LDAP_attribute_list] [-g] [-m] [-n] [-k] [-a ] [-b ] [-? ]

Pilihan

-i Menentukan mod import. Jika parameter tidak ditentukan, mod eksport digunakan secara lalai. -fnama fail Menentukan nama fail import atau eksport. -snama pelayan Menentukan komputer di mana operasi import atau eksport harus dilakukan. Program lalai ldifde akan dilaksanakan pada komputer yang digunakan ldifde dipasang. -cbaris1 baris2 Menggantikan semua kejadian baris1 kandungan baris2. Biasanya digunakan apabila anda mengimport data dari satu domain ke domain lain dan perlu menggantikan nama domain yang terkenal yang melakukan eksport ( baris 1), mengimport nama domain ( baris2). -v Mendayakan mod pembalakan terperinci. -jlaluan Menentukan lokasi fail log. Lalai ialah laluan semasa. -tport_nombor Menentukan nombor port LDAP (Lightweight Directory Directory Access Protocol). Protokol Akses). Port LDAP lalai ialah 389. Port katalog global ialah 3268. -dDN_base Menentukan nama terbeza asas carian untuk mengeksport data. -rPenapis LDAP Mencipta penapis carian LDAP untuk eksport data. Sebagai contoh, penapis berikut mengeksport semua pengguna dengan nama tengah tertentu: csvde -r (dan(objectClass=pengguna)(sn=Nama keluarga)) -hlmwilayah Menentukan kawasan carian. Parameter skop carian ialah Pangkalan, OneLevel Dan SubTree. -lLDAP_attribute_list Menentukan senarai atribut yang dikembalikan dalam hasil permintaan eksport. Jika parameter ini ditinggalkan, semua atribut dikembalikan. -oLDAP_attribute_list Menentukan senarai atribut untuk ditinggalkan daripada hasil permintaan eksport. Pilihan ini biasanya digunakan apabila mengeksport objek daripada Active Directory dan kemudian mengimportnya ke dalam direktori lain yang serasi dengan LDAP. Jika mana-mana atribut tidak disokong oleh katalog lain, ia boleh dikecualikan daripada set hasil menggunakan pilihan ini. -g Menghapuskan carian halaman. -m Meninggalkan atribut yang tidak boleh ditulis, seperti ObjectGUID Dan objectSID. -n Mengetepikan eksport nilai binari. -k Mengabaikan ralat semasa operasi import dan meneruskan pemprosesan. Di bawah ialah senarai penuh ralat yang diabaikan:

  • objek itu sudah menjadi ahli kumpulan;
  • pelanggaran kelas objek (bermaksud kelas objek yang ditentukan tidak wujud) jika objek yang diimport tidak mempunyai atribut lain;
  • objek sudah wujud;
  • pelanggaran sekatan;
  • atribut atau nilai sudah wujud;
  • tiada objek sedemikian wujud.
-adistinguished_name_password Menentukan pelaksanaan perintah menggunakan yang ditentukan distinguished_name_user_name Dan kata laluan -b. -bkata laluan domain nama pengguna Menentukan arahan yang akan dilaksanakan menggunakan yang ditentukan nama pengguna, domain dan kata laluan. Secara lalai, arahan akan dilaksanakan menggunakan bukti kelayakan pengguna yang ada masa ini didaftarkan pada rangkaian. Tidak boleh digunakan dengan parameter -a. -? Memaparkan menu arahan.

Nota

  • Dengan parameter -c anda boleh menggunakan pemalar #schemaNamingContext Dan #configurationNamingContext bukannya nama ternama bagi partition direktori skema dan partition direktori konfigurasi.
  • Apabila mencipta fail import untuk arahan ldifde, gunakan nilai changeType untuk menentukan jenis perubahan yang terkandung dalam fail import. Nilai changeType diberikan dalam jadual di bawah.

Di bawah ialah contoh fail import LDAP dalam format LDIF yang menggunakan nilai Tambah:
DN: CN=pengguna_pilihan,DC=nama domain
changetype: Tambah
CN: pengguna_pilihan
penerangan:perihalan_fail
objectClass: pengguna
objectClass: pengguna_pilihan

Contoh

Untuk mengeluarkan hanya nama yang terkenal, nama yang selalu digunakan, nama pertama, nama keluarga dan nombor telefon objek yang dikembalikan, masukkan:
-l nama_terkenal, CN, Nama, S.N. telefon
Untuk mengecualikan pengecam unik global (GUID) untuk objek, masukkan:
-o apabila_dicipta, bila_berubah, object_GUID

Hari ini kami akan cuba memuat naik senarai semua pengguna ke fail berasingan daripada Active Directory. Pembantu utama kami dalam perkara ini ialah PowerShell. Masalahnya ialah Microsoft pada mulanya merancang satu pasukan Konsol PowerShell sebagai alat utama untuk pengurusan pelayan Komponen Windows. Dan hari ini, apabila kita sudah mempunyai versi 2.0, secara amnya, ini benar.

Malah pada masa lalu baru-baru ini, untuk berinteraksi dengan AD, pentadbir perlu mempunyai sama ada utiliti dsquery atau pelbagai jenis skrip atau utiliti. Bermula hari ini Versi Windows Pelayan 2008 R2, kami boleh bekerja dengan AD melalui PowerShell. Dengan kemunculan PowerShell 2.0, modul khas digunakan untuk berinteraksi dengan Active Directory Modul Direktori Aktif untuk Windows PowerShell , yang mengandungi senarai cmdlet yang diperlukan. Untuk tugasan kami, kami akan menggunakan arahan Dapatkan-ADUser.

Jadi, bergantung pada mana yang terkawal sistem operasi kami akan melancarkan konsol PowerShell, kami perlu melakukan "langkah persediaan".

1) Jika kita bekerja di bawah Pelayan Windows sehingga versi 2012, maka kita perlu menjalankan arahan:

  • Import-Modul Activedirectory – arahan untuk mengimport modul ke dalam AD

Untuk versi sistem pengendalian dari 2012 dan lebih tinggi, modul ini telah didayakan secara lalai.

2) Jika kita bekerja dari bawah mana-mana Windows pelanggan, maka pakej mesti dipasang padanya pentadbiran jauh RSAT, dengan komponen Active Directory Module dipasang untuk Windows PowerShell.

Perlu diingat bahawa cmdlet Get-ADUser disyorkan untuk dilaksanakan apabila jumlah data yang dimuat naik adalah sehingga 1000 pengguna.

Mengeksport pengguna AD menggunakan PowerShell ke fail berasingan

Mula-mula, mari kita hubungi bantuan untuk arahan Get-ADUser. Akibatnya, anda akan mendapat segala-galanya perintah yang diperlukan untuk pentadbiran selanjutnya.

  • bantu Get-ADUser – perintah untuk memanggil bantuan

Untuk masuk ke tingkap Senarai PowerShell semua pengguna dengan semua sifat, anda perlu menjalankan arahan berikut:

  • Dapatkan-ADUser -penapis * – eksport senarai pengguna AD

Muat turun ini tidak sepenuhnya bermaklumat dan tidak sesuai dengan semua perkara dalam tetingkap. maklumat yang diperlukan. Oleh itu, mari kita cuba mengecilkan carian dan memaparkan sifat pengguna tertentu dengan nama pengguna1:

  • Get-ADUser -identity user1 -properties * – eksport sifat pengguna tertentu

Sekarang mari cuba mengeksport senarai semua pengguna dengan sifat mereka ke luaran txt atau csv fail:

  • Get-ADUser -filter * -properties * | Export-csv -path c:\users.csv -encoding Unicode – eksport pengguna ke fail berasingan

Saya ingin memberi perhatian khusus kepada kunci -pengekodan Unicode. Ia berfungsi untuk memastikan bahawa abjad Cyrillic Rusia, selepas eksport dari AD, boleh dipaparkan dengan betul dalam fail yang dimuat naik. Contohnya, melalui Microsoft Excel Kita akan lihat tanda soal bukannya surat Rusia.

Apabila melihat fail, data dieksport dalam satu baris dan oleh itu tidak boleh dibaca. Untuk mengubahnya kita perlu melakukan perkara berikut: