3 sätt att hålla Active Directory (AD) rent

ripulire Active Directory

[av_textblock size=” av-medium-font-size=” av-small-font-size=” av-mini-font-size=” font_color=” color=” id=” custom_class=” template_class=” av_uid=’av-lkqz9won’ sc_version=’1.0′ admin_preview_bg=”]
Active Directory (AD) är en av de IT-produkter som tenderar att bli uppblåsta. Det är en IT-produkt som många människor gör ändringar i varje dag och som i slutändan blir en enorm hög med saker som på något sätt fortfarande fungerar. Även den mest välmenande IT-avdelning verkar alltid hamna i en Active Directory-miljö med massor av användarkonton som inte längre behövs, GPO:er som är kopplade till OU:er som folk inte ens visste fanns och datorkonton som representerade datorer som sedan länge är borta. Detta tillstånd verkar smyga sig på människor. En dag sätter sig någon framför Active Directory (AD) Users and Computers (ADUC) och får en känsla av att “Wow! Detta måste åtgärdas.”. När någon i din organisation väl får det ögonblicket kommer det förmodligen att bli en skrämmande och överväldigande uppgift. Du kanske startar ett projekt för att “rensa upp” men du kommer snart att upptäcka att det inte räcker med att högerklicka och radera. Det finns många sätt att göra detta projekt till en framgång, och den första uppgiften är att definiera vad “sanering” innebär. I den här artikeln ska vi fokusera på oanvända användarkonton. Mer specifikt kommer vi att fokusera på tre attribut som ett användarkonto kan ha som gör att det anses “raderbart” Dessa attribut är inaktiverade konton, konton som inte har använts på X dagar och konton med utgångna lösenord.

Ett av de enklaste sätten att hitta dessa potentiellt oanvända konton är att använda PowerShell. ActiveDirectory PowerShell är en modul som innehåller en mycket användbar cmdlet som heter Search-AdAccount som gör det enkelt att skapa frågor och returnera exakt det vi behöver. Innan du kan använda denna cmdlet måste du dock hämta RSAT-paketet (Remote Server Administration Tools) från Microsoft. När det paketet är installerat bör du ha ActiveDirectory-modulen, och du är redo att köra! För att någon av nedanstående koder ska fungera förutsätter jag att du använder en Windows-dator som är domänansluten till samma domän som de användare du vill hitta. Med det sagt, låt oss sätta igång! Den första uppgiften är att hitta funktionshindrade konton. För att hitta inaktiverade konton använder vi cmdlet Search-ADAccount. Denna cmdlet har en enda parameter som heter Disabled som gör denna uppgift enkel. Kör bara Search-AdAccount -AccountDisabled och vips visas alla dina inaktiverade konton. Observera att jag använde parametern UsersOnly eftersom den här cmdletten även kan hitta inaktiverade datorkonton.

C:> Search-ADAccount -UsersOnly -AccountDisabled -Server dc

AccountExpirationDate :
DistinguishedName : CN=Guest,CN=Users,DC=mylab,DC=local
Aktiverad : Falsk
LastLogonDate :
LockedOut :
Falskt namn : Gäst
ObjektKlass : användare
ObjektGUID : 89cfaf2b-c6d8-4ae0-a720-e2da7d201717
PasswordExpired : Falskt
PasswordNeverExpires : Sant
SamAccountName : Gäst
SID : S-1-5-21-4117810001-3432493942-696130396-501
UserPrincipalName :
…………

En annan vanlig misstänkt att rensa upp är inaktiva användarkonton och är lite svårare att spåra. “Inaktiv” är en subjektiv term så för våra syften kommer vi att definiera “inaktiv” som alla användare som har ett värde för LastLogonTimeStemp som är äldre än 30 dagar. Det finns många artiklar på Internet om hur man hittar inaktiva användare, men många inser inte att det är mycket enklare än att bygga komplicerade AD LDAP-filter. Stödet är inbyggt i Search-AdAccount. Vi kan använda Search-AdAccount -AccountInactive -UsersOnly -Timespan 30.00:00:00 för att omedelbart hitta alla AD-användarkonton som inte har använts på 30 dagar. Det finns dock ett förbehåll. Microsoft uppdaterar bara attributet LastLogonTimestamp, som är detsamma som LastLogonDate, var 14:e dag för att förhindra replikeringsstormar. På grund av denna egenskap hos AD kommer den här metoden (eller till och med Get-AdUser eller Get-AdComputer med det avancerade filtret) inte att vara helt korrekt om du försöker få fram konton med inaktivitet som är äldre än 14 dagar. Så var försiktig. Slutligen måste vi hitta alla AD-användare som har ett utgånget lösenord som inte längre behövs. Det här är knepigt eftersom “aktiva” användarkonton kan ha ett lösenord som har gått ut om det nyligen har gått ut. Jag behöver inte bara hitta utgångna lösenord utan även hur länge sedan det var de gick ut. Om de gick ut för t.ex. 30 dagar sedan eller längre sedan kan jag anta att dessa användarkonton i själva verket är inaktiva. För att ta reda på hur länge sedan ett lösenord löpte ut måste jag först ta reda på den maximala lösenordsåldern för domänens lösenordspolicy. Jag kan göra detta med Get-AdDefaultDomainPasswordPolicy cmdlet. $MaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.Days Därefter kan jag hitta alla användarkonton som har ett utgånget lösenord och sedan filtrera dessa användarkonton genom att se när deras lösenord senast angavs och se till att det var före den maximala tiden som lösenordet kunde vara plus 30 (hur gammalt jag definierar att kontot ska vara). Koden kommer att se ut ungefär så här: Search-AdAccount -PasswordExpired -UsersOnly | Where-Object {((Get-Date) – (Get-AdUser -Filter “samAccountName -eq $_.SamAccountName”).PasswordLastSet) -lt ($MaxPasswordAge + 30)} Nästa gång du söker efter inaktiva poster i AD bör du titta på Search-AdAccount för att se om det redan gör det du försöker göra. Det kan spara dig massor av tid! Adam Bertram är Microsoft Windows Cloud and Datacenter Management MVP och har författat flera utbildningskurser, medverkar regelbundet i flera tryckta och online-publikationer och presenterar vid olika användargrupper och konferenser. Du hittar Adam på adamtheautomator.com eller på Twitter på @adbertram.
[/av_textblock]

Nästa steg

För att bygga upp ett effektivt och handlingskraftigt IT-team krävs en centraliserad lösning som fungerar som ett centralt redskap för att leverera IT-tjänster. NinjaOne gör det möjligt för IT-teams att övervaka, hantera, säkra och stödja alla sina enheter, oavsett var de befinner sig, utan behovet av en komplex infrastruktur på plats.

Lär dig mer om NinjaOne endpoint-hantering, ta en live tour, eller starta en gratis provperiod av NinjaOne.

Du kanske även gillar dessa inlägg

Är du redo att förenkla de svåraste delarna av IT?
×

Se NinjaOne i aktion!

Genom att skicka detta formulär accepterar jag NinjaOne:s integritetspolicy.

NinjaOne Villkor och bestämmelser

Genom att klicka på knappen “Jag accepterar” nedan anger du att du accepterar följande juridiska villkor samt våra användarvillkor:

  • Äganderätt: NinjaOne äger och kommer att fortsätta att äga alla rättigheter, titlar och intressen i och till manuset (inklusive upphovsrätten). NinjaOne ger dig en begränsad licens att använda skriptet i enlighet med dessa juridiska villkor.
  • Begränsning av användning: Du får endast använda skriptet för dina legitima personliga eller interna affärssyften, och du får inte dela skriptet med någon annan part.
  • Republikbildning Förbud: Du får under inga omständigheter återpublicera skriptet i något skriptbibliotek som tillhör eller kontrolleras av någon annan programvaruleverantör.
  • Friskrivning från garantiansvar: Skriptet tillhandahålls “i befintligt skick” och “som tillgängligt”, utan garanti av något slag. NinjaOne ger inga löften eller garantier om att skriptet kommer att vara fritt från defekter eller att det kommer att uppfylla dina specifika behov eller förväntningar.
  • Antagande av risk: Din användning av skriptet sker på egen risk. Du bekräftar att det finns vissa inneboende risker med att använda skriptet, och du förstår och tar på dig var och en av dessa risker.
  • Avstående och befrielse: Du kommer inte att hålla NinjaOne ansvarig för några negativa eller oavsiktliga konsekvenser till följd av din användning av skriptet, och du avstår från alla juridiska eller skäliga rättigheter eller rättsmedel som du kan ha mot NinjaOne i samband med din användning av skriptet.
  • EULA: Om du är en NinjaOne-kund omfattas din användning av skriptet av det licensavtal för slutanvändare som gäller för dig (EULA).