jekob heidelberg bloghoved

Hjælp til selvhjælp - få lidt bedre styr på dit AD med New-ADReport

Jeg har udfærdiget et "lille" PowerShell script, New-ADReport.ps1, som udtrækker en række interessante informationer om brugere, computere og grupper i Active Directory (AD). Tanken er at give et hurtigt overblik over miljøets tilstand - primært med sikkerhed for øje.

Man kan i store træk sammenligne det med de udtræk, som en klassisk IT-revision jævnligt foretager - med et twist. Der ses eksempelvis på politikker for adgangskoder, inaktive bruger- og computerkonti, anvendelsen af en række specielle rettigheder og konfigurationer, medlemskab af privilegerede grupper m.v.

Forhåbentlig kan alle de, som ikke har investeret i mere forkromede værktøjer til den slags, få glæde af scriptet og måske anvende det til at få strammet lidt op på sikkerheden i Active Directory, evt. til at kontrollere at ens outsourcing-partner og/eller driftafdeling har styr på AD-relaterede processer, konfigurationer og tildelte rettigheder.

En del informationer i rapporten kræver yderligere fortolkning og lidt forstand på Active Directory, herunder eksempelvis relaterede 'Best Practices' og forsvar mod Pass-the-Hash angreb.

Scriptet leverer som udgangspunkt en enkel rapport i en almindelig tekstfil, som set i skærmdump nedenfor.

Illustration: Privatfoto

Der er yderligere mulighed for at udtrække rå data i separate CSV filer, f.eks. til videre sortering og analyse i Excel.

Scriptet kan eksekveres af en almindelig Domain User, såfremt denne har PowerShell, inkl. ActiveDirectory modulet, installeret. Yderligere detaljer om eksekvering er indeholdt i scriptet, omend grundlæggende forstand på PS eksekvering er påkrævet.

Som med alverdens andre scripts, er det kun fantasien, der sætter grænser. New-ADReport kan eksempelvis forholdsvis nemt omskrives til at sende en månedlig rapport pr. e-mail eller lignende.

Scriptet leveres as-is og uden bindinger af nogen art. Det er ufarligt at køre, da der kun læses fra AD, men eksekvering foregår 100% på eget ansvar, så læs koden igennem selv først. Jeg skal i den forbindelse beklage de manglende kommentarer og det betydelige potentiale for kodeoptimering.

En speciel tak skal lyde til PowerShell MVP Claus Nielsen (@claustn), som har hjulpet undervejs i udviklingsprocessen.

Skriv gerne om evt. bugs eller ønsker til næste version i kommentarerne nedenfor eller på Twitter: @JakobHeidelberg.

Seneste version kan hentes her: http://1drv.ms/1GAe0Eo

I håbet om flere stramt styrede AD'er i verden :-)

Kommentarer (5)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Jakob H. Heidelberg

Jeg kender ikke det værktøj, men en række andre. De kan være helt OK. Dog foretrækker jeg personligt et scripting approach af flere årsager:

  1. det er åben kode hvor alle kan se hvad der foretages - jeg vil helst vide hvad toolet gør
  2. alle kan tilrette og modificere som de har lyst - ingen afhængighed
  3. det er let at transportere imellem forskellige miljøer og kræver ikke installation (og godkende heraf) - rart som konsulent der ser mange miljøer
  4. man kan nemt integrere med andre systemer og skræddersy
  5. der er ingen licens-udfordringer eller omkostninger

Dertil lærer man en hulens masse mere om de ting man arbejder med, når man springer ud i den slags projekter selv - det er dét, jeg elsker ved IT :)

  • 0
  • 0
Mads Krag Dam

Det er vigtigt at man kører allerførste linje, som vist på Jakobs skærmbillede.
. .\New-ADReport.ps1

Herefter kan man anvende New-ADReport som "almindelig" powershell-kommando.

Men det er som du skriver, Jakob, "grundlæggende forstand på PS eksekvering er påkrævet", hehe.

  • 0
  • 0
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize