Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Këshilla
  • Excel në vend të PowerShell: pyetje për AD dhe raportet e sistemit "në gju". Skriptet për shkarkimin e të gjithë përdoruesve nga MS Active Directory (ITGC)

Excel në vend të PowerShell: pyetje për AD dhe raportet e sistemit "në gju". Skriptet për shkarkimin e të gjithë përdoruesve nga MS Active Directory (ITGC)

Skriptet për shkarkimin e të gjithë përdoruesve nga MS Active Directory (ITGC)

Ivan Piskunov

Një nga procedurat standarde të auditimit ITGC për katalogun Active Directory është të merrni një shkarkim të të gjithë përdoruesve të domenit. Bazuar në të dhënat e marra, më pas formohen procedurat e testimit, për shembull, studimi i listës së administratorëve ose identifikimi i përdoruesve me një fjalëkalim të skaduar. Mënyra më efektive për të krijuar një ngarkim të tillë do të ishte përdorimi i një ndërfaqe standarde PowerShell , shembuj të të cilëve do t'i shqyrtojmë në këtë artikull

1. Ngarkimi i shpejtë duke përdorur një skript PowerShell

Më poshtë është një skript PowerShell si një nga mënyrat më të thjeshta dhe më të shpejta për të marrë një listë të të gjithë përdoruesve të domenit AD në formatin CSV, i cili mund të hapet pa asnjë problem në 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() # Numri i llogarive $users.Numri $users | PërÇdo-Object ( $user = $_.Properties New-Object PsObject -Property @( Pozicioni = $user.description Departamenti = $user.department Hyrja = $user.userprincipalname Telefoni = $user.telephonenumber Dhoma = $user.physicaldeliveryofficename e plotë emri = $user.cn ) ) | Export-Csv -NoClobber -Encoding utf8 -Shtegu C: list_domain_users.csv

Në mënyrë që skripti të funksionojë në sistemin tuaj, duhet ta korrigjoni pak, përkatësisht të futni parametrat e nevojshëm, d.m.th. si në këtë shembull këto janë parametrat Përdoruesit në departament Departamentet në domen Test.ru. Dhe gjithashtu tregoni shtegun ku është ruajtur skedari list_domain_users.csv

Pas shkarkimit, nëse e hapni menjëherë list_domain_users.csv , do të duket e palexueshme, megjithatë, duke përdorur mjete standarde mund ta sjellim lehtësisht në formatin që na nevojitet. Hapni në Excel list_domain_users.csv , zgjidhni kolonën e parë, më pas shkoni te skeda “Data” dhe klikoni “Tekst sipas kolonave”. Zgjidhni "kufizuar" dhe klikoni "Next". Gati!

!Është e nevojshme të theksohet se ky skript nuk do të shfaqë më shumë se 1000 përdorues. Është mjaft i përshtatshëm për një kompani të vogël, por për ata që kanë një numër të madh përdoruesish në domenin e tyre, ata duhet të përdorin metodat e përshkruara më poshtë.

2. cmdlet i avancuar PowerShell për marrjen e ngarkimeve të përdoruesve të Active Directory

Moduli Active Directory për Windows PowerShell (i prezantuar në Windows Server 2008 R2 dhe më të lartë) ju lejon të krijoni cmdlet që kryejnë manipulime të ndryshme me objektet e drejtorisë AD. cmdlet përdoret për të marrë informacion rreth përdoruesve dhe vetive të tyre Get-ADUser.

Të fillosh hapni një dritare Powershell me të drejtat e administratorit dhe importoni modulin Active Directory për veprime të mëtejshme:
Import-Moduli i drejtorisë aktive

për të listoni të gjitha llogaritë e domenit dhe, le të ekzekutojmë komandën:

Get-ADUser -filtri *

për të shfaq informacion të plotë për të gjitha atributet e disponueshme përdoruesi, ekzekutoni komandën

Get-ADUser -indentity tuser -properties *


Për shembull, ne jemi të interesuar për informacion rreth data e ndryshimit të fjalëkalimit dhe koha e skadimit të tij . Rezultati i komandës mund të eksportohet në një skedar teksti:

Get-ADUser -filtri * -vetitë PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Emri, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:tempusers.txt

Ose menjëherë ngarkoni në CSV , i cili në të ardhmen do të jetë i përshtatshëm për t'u eksportuar në Excel (përveç kësaj, duke përdorur sort-object ne do ta renditim tabelën sipas kolonës PasswordLastSet, dhe gjithashtu do të shtojmë një kusht ku - emri i përdoruesit duhet të përmbajë vargun "Dmitry")

Get-ADUser -filtri * -vetitë PasswordExpired, PasswordLastSet, PasswordNeverExpires | ku ($_.emri –si “*Dmitry*”) | sort-objekt PasswordLastSet | Select-object Emri, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c:tempuser-password-expires-2015.csv

Nuk është sekret që që nga versioni i parë i PowerShell, Microsoft është përpjekur ta bëjë atë mjetin kryesor të administrimit të Windows. Dhe në shumë mënyra funksionon! Sot, duke përdorur shembuj të thjeshtë, do të tregojmë aftësitë e PowerShell që mund të përdoren për të marrë informacione të ndryshme rreth përdoruesve të Active Directory dhe atributeve të tyre.

shënim. Më parë, për të marrë informacion në lidhje me atributet e llogarive të përdoruesve të AD, duhej të përdorni mjete të ndryshme: konsolën ADUC (përfshirë), një mjet, etj. Zgjedhja e mjetit zakonisht bazohej në detyrën në fjalë dhe aftësitë programuese të administratorit.

PowerShell 2.0 prezantoi një modul të veçantë për të punuar me Active Directory - (i prezantuar në Windows Server 2008 R2), cmdlet-et e të cilit ju lejojnë të kryeni manipulime të ndryshme me objektet e drejtorisë AD. cmdlet përdoret për të marrë informacion rreth përdoruesve të domenit të Active Directory dhe vetive të tyre Get-ADUser. Ju mund të përdorni cmdlet Get-ADUser për të marrë vlerën e çdo atributi të një llogarie ekzistuese përdoruesi në AD. Përveç kësaj, ju mund të specifikoni kritere të ndryshme përzgjedhjeje dhe të gjeneroni lista të përdoruesve të domenit dhe atributet e tyre.

Në këtë shembull, ne do t'ju tregojmë se si të përdorni cmdlet PowerShell Get-ADUser për të marrë informacione se kur është ndryshuar për herë të fundit fjalëkalimi i një përdoruesi dhe kur skadon.

Hapni dritaren Powershll me të drejtat e administratorit dhe importoni modulin Active Directory me komandën:

Import-Moduli i drejtorisë aktive

Këshilla. Në Windows Server 2012 dhe më të lartë, mund ta kapërceni këtë artikull, pasi moduli PowerShell Active Directory është aktivizuar si parazgjedhje.

Në sistemet operative të klientit (Windows 10 për shembull), që komandanti Get-AdUser të funksionojë, duhet të instaloni versionin e duhur të RSAT dhe të aktivizoni komponentin në panelin e kontrollit Moduli Active Directory për Windows PowerShell(Mjetet e Administrimit të Serverit në distancë -> Mjetet e Administrimit të Rolit -> Mjetet AD DS dhe AD LDS -> Mjetet e AD DS).

Një listë e plotë e të gjitha argumenteve cmdlet Get-ADUser mund të merret si më poshtë:

Ndihmoni Get-ADUser

Për të shfaqur një listë të të gjitha llogarive të domenit, ekzekutoni komandën:

Get-ADUser -filtri *

Formati i listës së kthyer nuk është shumë i përshtatshëm për t'u përdorur, shfaqen vetëm disa 10 bazë nga më shumë se 120 atributet dhe vetitë e llogarive të përdoruesve (DN, SamAccountName, Emri, UPN, etj.) përveç kësaj, ne shohim se ka nuk ka informacion për kohën e ndryshimit të fundit të fjalëkalimit.

Për të shfaqur informacion të plotë për të gjitha atributet e disponueshme të tuserit të përdoruesit, ekzekutoni komandën:

Get-ADUser -indentity tuser -properties *

Pra, ne shohim një listë të plotë të atributeve të përdoruesit AD dhe vlerat e tyre të lidhura me llogarinë e përdoruesit. Më pas, ne do të kalojmë në formatimin e daljes së cmdlet Get-ADUser në mënyrë që të shfaqen fushat që na duhen. Ne jemi të interesuar për atributet:

  • Fjalëkalimi ka skaduar
  • PasswordLastSet
  • Fjalëkalimi nuk skadon kurrë

Le të ekzekutojmë komandën:

Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires

Tani të dhënat e përdoruesit përmbajnë informacion në lidhje me datën e ndryshimit të fjalëkalimit dhe kohën kur do të skadojë. Le të paraqesim informacionin në një formë tabelare më të përshtatshme:

Get-ADUser -filtri * -vetitë PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Emri, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Për të shfaqur të dhënat e përdoruesit nga një OU specifike, përdorni parametrin Baza e Kërkimit:

Get-ADUser -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -filtri * -vetitë PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Emri, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Rezultati i komandës mund të eksportohet në një skedar teksti:

Get-ADUser -filtri * -vetitë PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Emri, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:\temp\users.txt

Ose në CSV, i cili do të eksportohet lehtësisht në Excel në të ardhmen (përveç kësaj duke përdorur lloj-objekt Le ta renditim tabelën sipas kolonës PasswordLastSet dhe gjithashtu të shtojmë një kusht ku- emri i përdoruesit duhet të përmbajë vargun "Dmitry"):

Get-ADUser -filtri * -vetitë PasswordExpired, PasswordLastSet, PasswordNeverExpires | ku ($_.emri –si “*Dmitry*”) | sort-objekt PasswordLastSet | Select-object Emri, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -rruga c:\temp\user-password-expires-2015.csv

Kështu, ju mund të ndërtoni një tabelë me çdo atribut të nevojshëm të përdoruesit të Active Directory.

Për të marrë një listë të llogarive të përdoruesve të AD bazuar në një karakteristikë specifike, përdorni parametrin –Filter. Si argumente për këtë parametër, mund të specifikoni vlerën e disa atributeve të përdoruesve të Active Directory, të cilat do të bëjnë që cmdlet Get-ADUser të aplikohet tek përdoruesit që përputhen me kriteret e filtrit.

Prodhimi i përdoruesve të AD, emri i të cilëve fillon me Roman:

Get-ADUser -filtri (emri -si "Roman*")

Get-ADUser -Filter (SamAccountName -si "*") | Masa-Objekt

Lista e të gjitha llogarive aktive (jo të bllokuara) në AD:

Get-ADUser -Filter (Enabled -eq "True") | Zgjidh-Objekt SamAccountEmri, Emri, Mbiemri, Emri i dhënë | Format-Tabela

Lista e llogarive me fjalëkalim të skaduar:

Get-ADUser -filtri (Enabled -eq $True) -properties fjalëkalimi Skaduar | ku ($_.Fjalëkalimi i skaduar)

Lista e llogarive aktive me adresa emaili:

Get-ADUser -Filter ((mail -ne "null") -dhe (Enabled -eq "true")) -Properties Mbiemri,GivenEmri,mail | Zgjidh-Emri i objektit,Mbiemri,Emri i dhënë, posta | Format-Tabela

Detyrë: për një listë llogarish që ruhen në një skedar teksti (një llogari për rresht), duhet të merrni numrin e telefonit të përdoruesit në AD dhe të ngarkoni informacionin në një skedar teksti csv (mund të importohet lehtësisht në Esxel).

Import-Csv c:\ps\usernsme_list.csv | PërÇdo ( Get-ADUser -identity $_.user -Properties Emri, phonenumber | Zgjidh Emri, phonenumber | Export-CSV c:\ps\export_ad_list.csv -Append -Encoding UTF8 )

Shembulli i mëposhtëm ju lejon të shkarkoni një libër adresash të ndërmarrjes si një skedar csv, i cili më vonë mund të importohet në Outlook ose Mozilla Thunderbird:

Get-ADUser -Filter ((mail -ne "null") -dhe (Enabled -eq "true")) -Properties Mbiemri,GivenEmri,mail | Zgjidh-Emri i objektit,Mbiemri,Emri i dhënë, posta | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $env:temp\mail_list.csv

Përdoruesit që nuk e kanë ndryshuar fjalëkalimin e tyre në 90 ditët e fundit:

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

$user = Get-ADUser winadmin -Properties thumbnailPhoto $user.thumbnailFoto | Set-Content winadmin.jpg -Bajti i kodimit

Lista e grupeve ku i përket llogaria e përdoruesit

Get-AdUser winadmin -Properties anëtarof | Zgjidh anëtarof -expandproperty Memberof

Në komentet e artikullit të mëparshëm, ne kujtuam kontabilitetin në Excel në vend të 1C. Epo, le të kontrollojmë se sa e dini Excel. Sot do t'ju tregoj se si të merrni të dhëna nga Active Directory dhe të punoni me të pa makro dhe PowerShell - vetëm me mekanizmat standardë të Office. Për shembull, mund të merrni lehtësisht analitikë mbi përdorimin e sistemeve operative në organizatën tuaj nëse nuk keni tashmë diçka si Microsoft SCOM. Epo, ose thjesht ngrohuni dhe hiqni mendjen nga skenarët.


Sigurisht, ju mund t'i merrni të dhënat si në shembujt më poshtë fjalë për fjalë me një rresht në PowerShell. Por, së pari, PowerShell është shumë i mërzitshëm, dhe së dyti, Excel mund të përditësojë në mënyrë dinamike të dhënat - dokumentet që rezultojnë mund të publikohen në internet dhe të harrohen për përditësimin e tyre.

Për të punuar me të dhënat, do të përdor mekanizmin Power Query. Për Office 2010 dhe 2013 do t'ju duhet të instaloni një shtesë; Microsoft Office 2016 tashmë e ka të integruar këtë modul. Fatkeqësisht, botimi standard nuk na mjafton, do të na duhet Professional.


Vetë mekanizmi është krijuar për të marrë dhe përpunuar të dhëna nga burime të ndryshme - nga skedarët e vjetër ODBC dhe teksti, te Exchange, Oracle dhe Facebook. Më shumë detaje rreth mekanizmit dhe gjuhës së integruar të skriptimit "M" janë shkruar tashmë në Habré, por unë do të shikoj disa shembuj të përdorimit të Power Query për të marrë të dhëna nga Active Directory.

Ngrohja: Le të shohim kur përdoruesit tanë janë identifikuar

Vetë kërkesa për bazën e të dhënave të domenit krijohet në skedën “Data ― Kërkesë e re ― Nga burime të tjera ― Nga Active Directory”.



Specifikoni burimin e të dhënave.


Do t'ju duhet të zgjidhni një emër domeni dhe të jepni informacionin e nevojshëm të lidhjes. Tjetra, zgjidhni llojin e objekteve, në këtë shembull - përdorues. Në të djathtë në dritaren e pamjes paraprake, pyetja po ekzekutohet tashmë, duke treguar një pamje paraprake të të dhënave.



Ne përgatisim një kërkesë dhe admirojmë pamjen paraprake.


Ju duhet ta përgatisni kërkesën paraprakisht duke klikuar butonin "redakto" dhe duke zgjedhur kolonat e kërkuara. Në thelb, këto kolona janë klasa. Secila prej tyre përmban një grup atributesh specifike të një objekti të Active Directory, me përjashtim të kolonës kryesore. Emri i shfaqur, e cila në vetvete është një atribut. Do të përqendrohem në klasa përdorues, person, krye Dhe sigurimi Kryesor. Tani ju duhet të zgjidhni atributet e nevojshme nga secila klasë duke përdorur "extension" - një ikonë me dy shigjeta në kokën e kolonës:

  • Klasa përdorues zgjerohet duke zgjedhur lastLogonTimestamp Dhe UserAccountControl;
  • V person le të zgjedhim numër telefoni;
  • V kryekurKrijohet;
  • dhe ne sigurimi KryesorEmri i llogarisë Sam.


Ne zgjerojmë kërkesën.


Tani le të konfigurojmë filtrin: në veçanti, për të mos bllokuar llogari, atributi userAccountControl duhet të ketë një vlerë prej 512 ose 66048. Filtri mund të jetë i ndryshëm në mjedisin tuaj. Mund të lexoni më shumë rreth atributit në dokumentacionin e Microsoft.



Aplikimi i një filtri.


Ndonjëherë Excel zbulon gabimisht formatin e të dhënave, veçanërisht vlerën e atributit lastLogonTimestamp. Nëse një fatkeqësi e tillë ju godet papritmas, mund të vendosni formatin e duhur në skedën "Konverto".

Tani kolona userAccountControl duhet të fshihet - nuk nevojitet fare në ekran. Dhe klikoni "Shkarko dhe mbyll".


Rezultati është një pjatë që ka nevojë vetëm për pak prekje përfundimtare. Për shembull, riemërtoni kolonat në diçka më të lexueshme. Dhe konfiguroni përditësimin automatik të të dhënave.


Përditësimi automatik gjatë hapjes së një tabele ose me ndërprerje kohore konfigurohet në skedën "Të dhënat" në "Properties".



Konfigurimi i përditësimit të të dhënave.


Pas përfundimit të konfigurimit të përditësimit, mund t'ia jepni me siguri tabelën departamentit të personelit ose shërbimit të sigurisë - njoftoni ata se kush është regjistruar në sistem dhe kur.


Kodi i kërkesës në gjuhën "M" është nën spoiler.

le Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Object Kategories"], user1 = domain.ru(), #"Remote Columns" = Table.RemoveColumns(user1,( "Person organizativ", "shadowAccount", "posixAccount", "msExchOmaUser", "msExchBaseClass", "msExchIMRecipient", "msExchCertificateInformation", "msExchMultiMediaUser", "msExchMailStorage", "msExchMailStorage", "msExchCustomRecipient", "disExchCustomRecipient" #"Expanded element securityPrincipal" = Table.ExpandRecordColumn(#"Kollonat e hequra", "securityPrincipal", ("sAMAccountName"), ("sAMAccountName")), #"Elementi i zgjeruar lart" = Table.ExpandRecordColumnedinal(#"E ", "lart", ("kur u krijua"), ("kur u krijua")), #"person i elementit të zgjeruar" = Table.ExpandRecordColumn(#"Elementi i zgjeruar sipër", "person", ("Numri i telefonit"), ("Numri i telefonit" ")), #"Përdoruesi i elementit të zgjeruar" = Tabela.ExpandRecordColumn(#"Personi i elementit të zgjeruar", "përdoruesi", ("lastLogonTimestamp", "userAccountControl"), ("lastLogonTimestamp", "userAccountControl")), #"Rreshtat me filtrin e aplikuar" = Tabela.SelectRows(#"Elementi i zgjeruar i përdoruesit", secili ( = 512 ose = 66048)), #"Lloji i ndryshuar" = Table.TransformColumnTypes(#"Rreshtat me filtër të aplikuar",(("LastLogonTimestamp", shkruani datatime))), #"Remoted columns1" = Tabela.RemoveColumns(#"Chand type",("userAccountControl")) in #"Remoted kolons1"

Krijimi i një libri adresash, ose çfarë të bëni kur portali i korporatës nuk është miqësor me AD

Një tjetër mundësi për përdorimin e Excel në lidhje me Active Directory është krijimi i një libri adresash bazuar në të dhënat e AD. Është e qartë se libri i adresave do të jetë i përditësuar vetëm nëse domeni është në rregull.


Le të krijojmë një kërkesë për një objekt përdorues, zgjeroni klasën përdorues V postë, dhe klasa person V numër telefoni. Le të fshijmë të gjitha kolonat përveç Emri i dalluar― struktura e domenit përsërit strukturën e ndërmarrjes, pra emrat Njësitë Organizative korrespondojnë me emrat e departamenteve. Në mënyrë të ngjashme, grupet e sigurisë mund të përdoren si bazë për emrat e departamenteve.


Tani nga linja CN=Emri i përdoruesit, OU=Departamenti i Kontabilitetit, OU=Divizionet, DC=domain, DC=ru ju duhet të nxirrni direkt emrin e departamentit. Mënyra më e lehtë për ta bërë këtë është të përdorni kufijtë në skedën Transform.



Nxjerrja e tekstit.


Unë përdor si përcaktues OU= Dhe ,OU=. Parimisht mjafton një presje, por po e luaj mirë.



Fut kufijtë.


Tani, duke përdorur filtrin, mund të shkëputni ato të panevojshme OU, si përdoruesit e bllokuar dhe të ndërtuara, konfiguroni renditjen dhe ngarkoni të dhënat në tabelë.



Pamje e tabelës përmbledhëse.

Raport i shpejtë mbi përbërjen e stacioneve të punës, pa futur agjentë apo përgatitje të tjera

Tani le të përpiqemi të krijojmë një tabelë të dobishme duke marrë të dhëna në kompjuterë. Le të bëjmë një raport mbi sistemet operative të përdorura nga kompania: për këtë do të krijojmë një kërkesë, por këtë herë në navigator do të zgjedhim kompjuter.



Bëjmë një kërkesë për objektin kompjuterik.


Le të lëmë klasat e kolonave kompjuter Dhe krye dhe zgjeroni ato:

  • Klasa kompjuter zgjerohet duke zgjedhur cn, Sistemi operativ, Operative SystemServicePack Dhe Versioni i Sistemit operativ;
  • në klasë krye le të zgjedhim kurKrijohet.


Kërkesë e avancuar.


Nëse dëshironi, mund të bëni një raport vetëm në sistemet operative të serverit. Për shembull, filtro sipas atributit OperativeSystem ose OperatingSystemVersion. Unë nuk do ta bëj këtë, por do të korrigjoj shfaqjen e kohës së krijimit - jam i interesuar vetëm për vitin. Për ta bërë këtë, në skedën "Konvertimi", zgjidhni kolonën që na nevojitet dhe zgjidhni "Viti" në menynë "Data".



Ne nxjerrim vitin nga koha kur kompjuteri hyri në domen.


Tani gjithçka që mbetet është të fshini kolonën e emrit të shfaqur si të panevojshme dhe të ngarkoni rezultatin. Të dhënat janë gati. Tani mund të punoni me ta si me një tryezë të zakonshme. Së pari, le të krijojmë një tabelë kryesore në skedën "Insert" - "Pivot Table". Le të pajtohemi me zgjedhjen e burimit të të dhënave dhe të konfigurojmë fushat e tij.



Cilësimet e fushës së tabelës rrotulluese.


Tani gjithçka që mbetet është të personalizoni dizajnin sipas shijes tuaj dhe të admironi rezultatin:



Tabela përmbledhëse për kompjuterët në AD.


Nëse dëshironi, mund të shtoni një grafik përmbledhës, gjithashtu në skedën "Fut". Në "Kategorinë" (ose në "Rreshtat", për shije) shtoni Sistemi operativ, për të dhënat - cn. Në skedën "Dizajn", mund të zgjidhni llojin e grafikut që ju pëlqen; Unë preferova grafikun me byrek.



Grafik me byrek.


Tani është qartë e dukshme se, pavarësisht përditësimit të vazhdueshëm, numri i përgjithshëm i stacioneve të punës me Windows XP dhe serverëve me Windows 2003 është mjaft i madh. Dhe ka diçka për të cilën duhet të përpiqeni.


Kodi i kërkesës është nën spoiler.

le Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Object Kategories"], computer1 = domain.ru(), #"Remote Columns" = Table.RemoveColumns(kompjuter1,( "user", "organizationalPerson", "person")), #"Kollona të tjera të hequra" = Tabela.SelectColumns(#"Kollonat e larguara",("displayName", "kompjuter", "lart")), #"Zgjero artikullin kompjuter" = Table.ExpandRecordColumn(#"Kollona të tjera në distancë", "kompjuter", ("cn", "operatingSystem", "operatingSystemServicePack", "operatingSystemVersion"), ("cn", "operatingSystem", "operatingSystemServicePack", " OperatingSystemVersion")), #"Extended Top" = Table.ExpandRecordColumn(#"Kompjuter i zgjeruar", "lart", ("kurKrijohet"), ("kurKrijohet")), #"Viti i Ekstraktuar" = Tabela.TransformColumns( #" Elementi i zgjeruar sipër",(("kur u krijua", Data.Viti))), #"Kollonat e larguara1" = Tabela.RemoveColumns(#"Viti i nxjerrë",("Emri i shfaqur")) në #"Kollonat e larguara1"

Shto etiketa

Mirëdita, të dashur lexues dhe abonentë, ne vazhdojmë të studiojmë aftësitë e Powershell dhe Active Directory. Siç e mbani mend, të gjitha llogaritë e saj të përdoruesve dhe kompjuterëve ndodhen në bazën e të dhënave NTDS.dit, gjithçka është e shkëlqyer dhe e centralizuar. Kur një kompani ka më shumë se një administrator sistemi, mund të lindë një situatë ku grumbullohen mbeturina dhe kredenciale të panevojshme. Të gjithë jemi njerëz dhe mund të harrojmë disa gjëra, dhe në disa momente mund të shpërqendrohemi, gjë që do të çojë edhe në harrimin e informacioneve të rëndësishme. Dhe ne arrijmë në përfundimin se përdoruesit joaktivë (të shkarkuar ose të harruar) grumbullohen në Actvie Directory; në çdo rast, një administrator i mirë i sistemit duhet t'i identifikojë, t'i çaktivizojë dhe më pas t'i fshijë nëse dëshiron, gjë që do të bëjmë ne.

Nëpërmjet snap-in ADUC

Herën e fundit ju dhashë një shembull të përdorimit të snap-in-it të Active Directory Users and Computers, nëpërmjet të cilit ne kërkuam kompjuterë të humbur në rrjetin lokal që nuk ishin shfaqur për një muaj. Tani do të bëjmë të njëjtën gjë me llogaritë e përdoruesve. Unë kam AD në Windows Server 2012 R2, hap ADUC, për ta bërë këtë shtyp WIN+R dhe fut dsa.msc.

Në formularin e kërkesës që hapet, shkruani:

  • Kërko emrin > për mua këta janë përdorues të humbur
  • Përshkrimi nëse është e nevojshme
  • Kërkoni rrënjë > këtu mund të lini të gjithë domenin, ose ta specifikoni në OU-në e dëshiruar

Pastaj klikoni butonin kërkesë.

Në skedën e përdoruesve shohim artikullin "Numri i ditëve që nga identifikimi i fundit"; për shembull, e vendosa në 60 ditë.

Si rezultat, do të merrni listën që ju nevojitet për llogaritë joaktive të punonjësve.

Nëpërmjet snap-in powershell

E njëjta gjë mund të bëhet përmes Powershell. Unë do t'ju jap menjëherë kodin, detyra e të cilit është të kërkoni për përdorues joaktivë; për këtë zgjodha një periudhë prej 45 ditësh, duke çaktivizuar të dhënat e përdoruesit dhe duke lëvizur në një OU të caktuar posaçërisht.

$date_with_offset= (Get-Date).AddDays(-45)
$users = Get-ADUser -Properties LastLogonDate -Filter (LastLogonDate -lt $date_me_offset ) | Rendit Data Logon Fund
foreach ($user në $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 ) | Rendit Data e Fundit Logon | FT Emri, LastLogonDate -AutoSize | Jashtë skedarit c:\Script\users.txt

  • Në rreshtin e parë ju deklaroni një variabël në të cilin vendosni termin e kërkimit
  • Krijoni një variabël dhe bëni një përzgjedhje bazuar në kohën e fundit të hyrjes
  • Lëvizja e përdoruesve

  • Bërja e një raporti në një dosje

Gjëra më të dobishme për të punuar me përdoruesin. Përpara se të përdorni komandat e mëposhtme, duhet të ngarkoni modulin Active Directory nëpërmjet komandës

Get-Help Get-ADUser

Sot do të përpiqemi të shkarkojmë një listë të të gjithë përdoruesve në një skedar të veçantë nga Active Directory. Ndihmësi ynë kryesor në këtë çështje do të jetë PowerShell. Gjë është se Microsoft fillimisht planifikoi tastierën e komandës PowerShell si mjetin kryesor për menaxhimin e komponentëve të serverit Windows. Dhe sot, kur tashmë kemi versionin 2.0, në përgjithësi, kjo është kështu.

Edhe në të kaluarën e afërt, për të ndërvepruar disi me AD, administratorët duhej të kishin në dispozicion ose programin dsquery ose lloje të ndryshme skriptesh ose shërbimesh. Sot, duke filluar me Windows Server 2008 R2, ne mund të punojmë me AD përmes PowerShell. Me ardhjen e PowerShell 2.0, një modul i veçantë përdoret për të bashkëvepruar me Active Directory Moduli Active Directory për Windows PowerShell, e cila përmban listën e nevojshme të cmdlet-ve. Për detyrat tona ne do të përdorim komandën Get-ADUser.

Pra, në varësi të cilit sistem operativ do të përdorim tastierën PowerShell, do të na duhet të kryejmë "hapa përgatitor".

1) Nëse jemi duke punuar nën Windows Server deri në versionin 2012, atëherë duhet të ekzekutojmë komandën:

  • Import-Moduli i drejtorisë aktive – komanda për të importuar një modul në AD

Për versionet e sistemit operativ nga 2012 e lart, ky modul është aktivizuar tashmë si parazgjedhje.

2) Nëse punojmë nga ndonjë klient Windows, atëherë duhet të instalohet paketa e administrimit në distancë RSAT, me komponentin Active Directory Module për Windows PowerShell të instaluar.

Vlen të përmendet se cmdlet Get-ADUser rekomandohet të ekzekutohet kur sasia e të dhënave që ngarkohen është deri në 1000 përdorues.

Eksportimi i përdoruesve të AD duke përdorur PowerShell në një skedar të veçantë

Së pari, le të thërrasim ndihmën për komandën Get-ADUser. Si rezultat, do të merrni të gjitha komandat e nevojshme për administrim të mëtejshëm.

  • ndihmë Get-ADUser – komanda për të thirrur ndihmë

Për të marrë një listë të të gjithë përdoruesve me të gjitha vetitë në një dritare PowerShell, duhet të ekzekutoni komandën e mëposhtme:

  • Get-ADUser -filtri * – eksportoni një listë të përdoruesve të AD

Ky ngarkim nuk është plotësisht informativ dhe nuk i përshtatet të gjithë informacionit të nevojshëm në dritare. Prandaj, le të përpiqemi të ngushtojmë kërkimin dhe të shfaqim vetitë e një përdoruesi specifik të quajtur user1:

  • Get-ADUser -identity user1 -properties * – eksportoni vetitë e një përdoruesi specifik

Tani le të përpiqemi të eksportojmë listën e të gjithë përdoruesve me vetitë e tyre në një të jashtëm txt ose csv dosje:

  • Get-ADUser -filtri * -vetitë * | Export-csv -rruga c:\users.csv -encoding Unicode – eksportoni përdoruesit në një skedar të veçantë

Do të doja t'i kushtoja vëmendje të veçantë çelësit -kodimi i Unicode. Ai shërben për të siguruar që alfabeti cirilik rus, pas eksportimit nga AD, të mund të shfaqet saktë në skedarin e ngarkuar. Për shembull, përmes Microsoft Excel do të shohim pikëpyetje në vend të shkronjave ruse.

Kur shikoni një skedar, të dhënat eksportohen në një rresht dhe për këtë arsye nuk janë të lexueshme. Për ta ndryshuar këtë duhet të bëjmë sa më poshtë:

Artikujt më të mirë mbi këtë temë