Belangrijkste punten
Methoden om verouderde adminaccounts in Active Directory te controleren en te verwijderen
- Audit van cloudbeheerders: open PowerShell als administrator, maak verbinding met Microsoft Graph, voer het auditscript uit om adminaccounts en laatste aanmeldingen weer te geven en exporteer vervolgens de verouderde accounts (30 dagen of langer inactief) om ze uit te schakelen of hun rechten in te trekken.
- Lokale beheerders opsporen: gebruik PowerShell op Windows-devices om alle lokale beheerders weer te geven, controleer per gebruiker de laatste aanmelding en schakel accounts die 30 dagen of langer inactief zijn uit of verwijder ze; schaal het proces met uw RMM op naar alle endpoints.
- Handmatige controles op verouderde accounts: wanneer PowerShell niet beschikbaar is voert u net localgroup administrators uit in CMD, bekijkt u de laatste aanmeldingen via de beveiligingslogboeken en gebruikt u analysetools voor register/SAM om verborgen of verouderde adminaccounts op te sporen.
- Accountbeheer via GPO: gebruik Group Policy om te beperken wie lokale beheerder mag zijn, weiger aanmelding voor verouderde of risicovolle accounts en configureer LAPS om lokale adminwachtwoorden periodiek automatisch te roteren.
- Geautomatiseerde audits & opschoning: schakel transcriptlogboeken in PowerShell in, plan terugkerende audits via uw RMM, schakel verouderde accounts automatisch uit, archiveer audittrails en stel notificaties in voor het onbevoegd aanmaken van beheerders.
Verouderde adminaccounts zijn stille beveiligingsproblemen: ze werken als openstaande achterdeuren voor aanvallers in uw Microsoft 365-tenant of hybride omgeving. Deze vergeten geprivilegieerde accounts ontsnappen vaak aan monitoring en brengen serieuze risico’s met zich mee op het gebied van compliance en datalekken.
In deze gids leest u precies hoe u verouderde accounts in Active Directory opspoort, ze efficiënt controleert en een geautomatiseerde opschoning opzet met PowerShell, Microsoft Graph en RMM-tools om uw omgeving veilig te houden.
Verbeter de beveiliging van uw bedrijf! Bekijk onze video: Zo controleert en verwijdert u verouderde adminaccounts in Active Directory over meerdere tenants.
Verwijder onnodige adminrechten en versterk zo uw beveiliging en compliance.
Ontdek de Active Directory Management-functies van NinjaOne.
Procedures om verouderde accounts in Active Directory te vinden en op te schonen
Een verouderd adminaccount is elke geprivilegieerde identiteit zonder recente activiteit. Dat kunnen global admins of geprivilegieerde rollen in Microsoft 365 zijn die al 30 dagen of langer niet zijn aangemeld, lokale administratoraccounts op Windows 11-devices die niet recent zijn gebruikt of serviceaccounts zonder interactieve aanmeldingen of duidelijke eigenaarsdocumentatie.
Accounts van oud-medewerkers die niet volledig zijn gedeprovisioneerd gelden eveneens als verouderde accounts. Door deze accounts proactief op te sporen en op te schonen in Active Directory, voorkomt u beveiligingsincidenten en blijft uw omgeving compliant.
📌 Use case: voer deze opschoning uit tijdens kwartaalaudits op beveiliging, na het vertrek van medewerkers of bij het opstellen van compliancerapporten zoals een 30-daagse review van inactieve Office 365-accounts. Maandelijkse controles zijn ideaal om risico’s vroeg te signaleren, zeker wanneer u gebruikersrapporten over inactieve accounts genereert.
📌 Vereisten: zorg vooraf dat u beheerderstoegang hebt tot alle Microsoft 365-tenants, over PowerShell-modules beschikt (zoals Microsoft Graph en AzureAD/MSOnline), dat de audittrails van Microsoft Entra zijn ingeschakeld en dat u lokale beheertools hebt voor controles op endpoints. Voor automatisering gebruikt u uw RMM-platform (bijvoorbeeld NinjaOne) om scans te centraliseren en beleid af te dwingen.
We raden u aan ⚠️ Waar u op moet letten door te nemen voordat u verdergaat.
📌 Aanbevolen implementatiestrategieën:
| Klik om een methode te kiezen | 💻 Beste voor individuele gebruikers | 💻💻💻 Beste voor ondernemingen |
| Methode 1: cloudbeheerders controleren met Microsoft Graph of AzureAD PowerShell | ✓ | ✓ |
| Methode 2: lokale adminaccounts op Windows-devices opsporen via PowerShell | ✓ | |
| Methode 3: CMD en registeraudits gebruiken voor lokale adminpersistentie | ✓ | |
| Methode 4: GPO gebruiken om lokale adminpersistentie te voorkomen | ✓ | |
| Methode 5: audittrail en verificatie van de opschoning automatiseren en vastleggen | ✓ | ✓ |
Methode 1: cloudbeheerders controleren met Microsoft Graph of AzureAD PowerShell
PowerShell geeft u rechtstreeks toegang tot gegevens over cloudactiviteit en is daarmee de snelste manier om verouderde adminaccounts te vinden.
📌 Use cases: voer deze audit elk kwartaal uit voor compliancecontroles, direct na de offboarding van een medewerker of bij het opstellen van maandelijkse beveiligingsrapporten. Vooral waardevol wanneer u eigen 30-daagse rapporten over inactieve Office 365-accounts nodig hebt die de standaardtools niet kunnen genereren.
Stapsgewijze procedure:
- Open PowerShell (als administrator).
- Druk op Win + X en selecteer Windows Terminal (administrator).
- Voer dit script uit om verbinding te maken met Microsoft Graph.
Connect-MgGraph -Scopes "Directory.Read.All", "AuditLog.Read.All"
- Authenticeer wanneer daarom wordt gevraagd.
- Maak een lijst van alle adminaccounts:
$admins = Get-MgRoleManagementDirectoryRoleAssignment |Where-Object { (Get-MgDirectoryRole -DirectoryRoleId $_.RoleDefinitionId).DisplayName -match "Admin" } |ForEach-Object { Get-MgUser -UserId $_.PrincipalId }
- Controleer de datum van de laatste aanmelding.
$results = @()foreach ($admin in $admins) {$lastSignIn = Get-MgUserSignIn -UserId $admin.Id -All |Sort-Object CreatedDateTime -Descending |Select-Object -First 1$daysInactive = if ($lastSignIn) { (New-TimeSpan $lastSignIn.CreatedDateTime).Days } else { 999 }$results += [PSCustomObject]@{User = $admin.UserPrincipalNameLastSignIn = if ($lastSignIn) { $lastSignIn.CreatedDateTime } else { "Never" }DaysInactive= $daysInactiveRiskStatus = if ($daysInactive -ge 30) { "STALE" } else { "Active" }}}
- Een account geldt als verouderd wanneer de laatste aanmelding 30 dagen of langer geleden is.
- Exporteer de gemarkeerde accounts:
$results | Where-Object { $_.RiskStatus -eq "STALE" } |Export-Csv "C:\Audit\Stale_Admins_$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation
Na de audit beschikt u over een CSV-bestand met alle verouderde gebruikersaccounts met adminrechten die 30 dagen of langer inactief zijn. Schakel accounts met een hoog risico direct uit via PowerShell of het Microsoft-beheercentrum, verwijder de adminrollen van de gemarkeerde gebruikers, leg uw bevindingen vast in uw RMM-platform en plan terugkerende audits in.
Methode 2: lokale adminaccounts op Windows-devices opsporen via PowerShell
Lokale adminaccounts op Windows-devices die niet worden gemonitord zijn een geliefd doelwit voor aanvallers. Met deze methode stelt u directe query’s op de Windows SAM-database in (zonder afhankelijkheid van de cloud).
📌 Use cases: voer deze audit maandelijks uit op alle endpoints, zeker na het vertrek van medewerkers of tijdens scans op kwetsbaarheden. Cruciaal om verouderde accounts met blijvende lokale toegang te vinden die aan cloudmonitoring ontsnappen.
Stapsgewijze procedure:
- Voer in PowerShell (als administrator) dit script uit om de lokale beheerders op een Windows 11-device weer te geven:
Get-LocalGroupMember -Group "Administrators" |Select-Object Name, PrincipalSource
- De uitvoer moet domein-/cloudaccounts (AzureAD) onderscheiden van lokale accounts.
- Controleer het tijdstip van de laatste aanmelding:
Get-LocalUser |Where-Object {$_.Enabled -eq $true} |Select-Object Name, LastLogon
- Schakel verouderde accounts uit of verwijder ze (30 dagen of langer inactief):
Disable-LocalUser -Name "LegacyAdmin" # First disableRemove-LocalUser -Name "LegacyAdmin" # Then delete permanently
- Schaal op naar alle devices met het RMM-script (zoals NinjaOne):
$computers = Get-ADComputer -Filter * | Select-Object -ExpandProperty NameInvoke-Command -ComputerName $computers -ScriptBlock {Get-LocalUser | Where-Object {($_.LastLogon -lt (Get-Date).AddDays(-30)) -and($_.Name -ne "Administrator")} | Disable-LocalUser}
Na de audit kunt u lokale verouderde gebruikersaccounts met adminrechten identificeren. Schakel accounts met een hoog risico direct uit, roteer wachtwoorden met LAPS (Local Administrator Password Solution), documenteer alles met risicomarkeringen in uw RMM-platform en plan terugkerende scans om nieuwe verouderde accounts te voorkomen.
Methode 3: CMD en registeraudits gebruiken voor lokale adminpersistentie
Wanneer PowerShell niet beschikbaar is, kunt u met deze handmatige methoden verborgen verouderde accounts aan het licht brengen.
📌 Use cases: gebruik dit voor snelle controles op losse Windows 11-devices tijdens incidentrespons of wanneer toegang tot PowerShell beperkt is. Ideaal om verouderde accounts te vinden die aan geautomatiseerde tools ontsnappen.
Stapsgewijze procedure:
- Geef de lokale beheerders weer via de Opdrachtprompt (administrator).
- Zoek Opdrachtprompt (administrator) via Zoeken op de taakbalk.
- Voer deze opdracht uit:
net localgroup administrators
- De uitvoer moet alle gebruikers met adminrechten op het huidige device tonen.
- Controleer de laatste aanmelding van een specifiek account via dit beveiligingslogboek:
wevtutil qe Security "/q:*[System[(EventID=4624)] and EventData[Data[@Name='TargetUserName']='oldadmin']" /f:text /c:1
- Vervang oldadmin door de verdachte gebruikersnaam. Dit script toont de laatste geslaagde aanmelding.
- Handmatige registercontrole (geavanceerd alternatief):
reg save HKLM\SAM sam.bakreg save HKLM\SYSTEM system.bak
- Gebruik offline SAM-viewers (bijv. SAMInsight) om \SAM\Domains\Account\Users\Names te analyseren.
⚠️ Waarschuwing: het verkeerd bewerken van het register kan tot ernstige systeeminstabiliteit leiden. Maak altijd een back-up van uw register of maak een herstelpunt voordat u verdergaat. Lees het gedeelte ⚠️Waar u op moet letten voor meer informatie.
Methode 4: GPO gebruiken om lokale adminpersistentie te voorkomen
Met GPO’s houdt u centraal de controle en voorkomt u dat aanvallers verouderde lokale adminaccounts misbruiken.
📌 Use case: gebruik dit bij de eerste verharding van uw omgeving, nadat u verouderde accounts hebt gevonden of ter voorbereiding op compliance-audits (bijv. SOC 2). Cruciaal om het principe van minste voorrecht op schaal af te dwingen.
Stapsgewijze procedure:
- Beperk het lidmaatschap van de lokale groep Administrators.
- Open de Groepsbeleidsbeheereditor (gpedit.msc).
- Ga naar Computerconfiguratie > Beleidsregels > Windows-instellingen > Beveiligingsinstellingen > Groepen met beperkte toegang.
- Voeg de groep Administrators toe en bepaal vervolgens de toegestane leden via:
DOMAIN\SecuredAdmins (Allowed admin group)
- Zo voorkomt u dat onbevoegde gebruikers hun rechten verhogen.
- Weiger aanmelding voor verouderde of risicovolle accounts.
- Ga naar dezelfde GPO en navigeer vervolgens naar: Computerconfiguratie > Beleidsregels > Windows-instellingen > Beveiligingsinstellingen > Lokaal beleid > Toewijzing van gebruikersrechten.
- Wijzig Lokaal aanmelden weigeren:
DOMAIN\OldAdminDOMAIN\Contractor_2020
- Hiermee blokkeert u interactieve aanmelding voor de opgegeven accounts.
- Dwing LAPS af voor wachtwoordrotatie.
- Installeer LAPS op domeincontrollers:
Install-WindowsFeature -Name "RSAT-AD-PowerShell"Install-Module LAPS -Force
- Configureer het LAPS-beleid:
Computer Configuration > Policies > Administrative Templates > LAPSEnable "Password Settings" and "Local Account Password Management"
Na de implementatie verliezen verouderde gebruikersaccounts binnen 90 minuten (bij de volgende GPO-vernieuwing) hun adminrechten en aanmeldtoegang, roteren lokale adminwachtwoorden via LAPS automatisch elke 30 dagen en wordt het aanvalsoppervlak kleiner doordat pass-the-hash-risico’s worden geblokkeerd.
Methode 5: audittrail en verificatie van de opschoning automatiseren en vastleggen
Automatisering maakt van het beheer van verouderde accounts een proactieve beveiligingsmaatregel in plaats van een reactief klusje.
📌 Use cases: zet dit in voor doorlopende compliance in multi-tenant-omgevingen, vooral na de eerste audits of tijdens maandelijkse beveiligingscycli. Onmisbaar voor MSP’s die meer dan 100 endpoints beheren.
Stapsgewijze procedure:
- Leg alle acties vast met PowerShell:
Start-Transcript -Path "C:\AuditLogs\$(Get-Date -Format 'yyyyMMdd').txt" -Append
- Voer uw auditscript uit (bijv. methode 1 of 2)
Stop-Transcript
- Zo ontstaan manipulatiebestendige registraties voor compliance.
- Plan dit in een RMM-platform (bijv. NinjaOne):
- Voer maandelijkse adminaudits uit.
- Gebruik het PowerShell-script uit methode 1 om verouderde accounts te vinden
- Schakel accounts die 30 dagen of langer inactief zijn automatisch uit:
- Voer maandelijkse adminaudits uit.
$staleUsers = Import-Csv "C:\Audit\Stale_Admins.csv"$staleUsers | ForEach-Object {if ($_.DaysInactive -ge 30) {Set-MgUser -UserId $_.User -AccountEnabled:$false}}
- Exporteer en archiveer rapporten:
Compress-Archive -Path "C:\AuditLogs\*.txt" -DestinationPath "\\NAS\Archives\StaleAdmins_$(Get-Date -Format 'yyyyMM').zip"
- Waarschuw bij beleidsovertredingen:
- Verstuur automatisch een e-mail wanneer buiten het IT-team om een nieuwe beheerder wordt aangemaakt.
$newAdmin = Get-MgDirectoryRoleMember -DirectoryRoleId "role-id" |Where-Object { $_.CreatedDateTime -gt (Get-Date).AddHours(-1) }if ($newAdmin) {Send-MailMessage -To "[email protected]" -Subject "ALERT: Unauthorized Admin Created" -Body $newAdmin.UserPrincipalName}
Zodra alles geautomatiseerd is, markeert uw systeem maandelijks verouderde gebruikersaccounts, schakelt het inactieve accounts na 30 dagen uit, archiveert het versleutelde logboeken voor compliance, waarschuwt het in realtime bij beleidsovertredingen en genereert het managementrapportages via RMM-dashboards.
⚠️ Waar u op moet letten
In dit gedeelte staan de mogelijke knelpunten waarmee u rekening moet houden terwijl u deze gids volgt.
| Risico’s | Mogelijke gevolgen | Herstelacties |
| 1. Inconsistente aanmeldgegevens | Vals-positieven waardoor actieve beheerders worden uitgeschakeld | 1. Controleer of de unified audit logs zijn ingeschakeld. 2. Voer |
| 2. Lokale beheerders worden niet gedetecteerd | Gemiste verouderde accounts op endpoints | 1. Geef de RMM-agent administratorrechten. 2. Gebruik |
| 3. Verwijdering van een beschermd account | Verstoring van kritieke services | 1. Controleer de vlag msDS-ProtectedFromAccidentalDeletion.2. Valideer de GPO-handhaving met |
| 4. Authenticatiefouten bij de Graph API | Scriptfouten tijdens de automatisering | 1. Valideer de scopes met Get-MgContext.2. Gebruik |
| 5. Beschadiging van het register | Het besturingssysteem wordt instabiel en opstarten mislukt. | Maak een back-up van het register* of maak een herstelpunt. *Open de Register-editor (regedit) en selecteer Bestand > Exporteren. Bekijk Zo maakt u een back-up van het Windows-register en zet u het terug voor meer details. |
| 6. Te strenge GPO-handhaving | Buitengesloten van alle devices | 1. Behoud het break-glass-account in de GPO. 2. Draai terug via |
| 7. Te agressieve automatisering | Onbedoeld massaal uitschakelen van actieve gebruikers | 1. Bouw een respijtperiode van 72 uur in uw scripts in. 2. Herstel vanuit de prullenbak van Entra ID (tot 30 dagen). |
Belangrijke aandachtspunten bij het controleren van verouderde accounts
Breng beveiliging en operationele continuïteit in balans met deze cruciale waarborgen.
Break-glass-accounts
Sluit altijd minstens één global admin-account per tenant uit van de geautomatiseerde opschoning (bijv. [email protected]). Bewaar de referenties in een verzegelde envelop of wachtwoordkluis en controleer ze elk kwartaal via:
Get-MgUser -UserId "[email protected]" | Select AccountEnabled
Zo voorkomt u dat u volledig wordt buitengesloten bij verkeerde configuraties of ransomware-aanvallen.
Privileged Identity Management (PIM)
Schakel Just-in-Time-toegang in Microsoft Entra ID in om permanente adminrollen te elimineren. Dat doet u via Entra ID > Identity Governance > Geprivilegieerde toegang, waarna u beheerders omzet naar in aanmerking komende rollen met tijdslimieten die via MFA worden geactiveerd.
Integratie van notificaties
Koppel Microsoft Sentinel/Defender for Cloud Apps om slapende accounts te detecteren. Maak deze analyseregels aan:
SigninLogs| where TimeGenerated > ago(90d)| summarize LastLogin = max(TimeGenerated) by UserPrincipalName| where LastLogin < ago(30d)
Notificaties via e-mail/sms voor inactieve Office 365-accounts en overtredingen in het 30-daagse rapport.
Serviceaccounts
Voorzie niet-interactieve accounts van het voorvoegsel [SERVICE] en zonder ze uit van het standaardbeleid voor inactiviteit:
Set-MgUser -UserId "svc_sqlbackup" -Department "ServiceAccount-Exempt"
De audit verloopt via:
Get-MgUser -Filter "startsWith(Department,'ServiceAccount')"
Bewaartermijn van audittrails
Verleng de bewaartermijn van unified audit logs naar 365 dagen; daarvoor is een Entra ID P2-licentie vereist. U controleert dit via Azure-portal > Microsoft Entra ID > Bewaking > Diagnostische instellingen. Schakel daarna AuditLogs en SignInLogs in met een bewaartermijn van één jaar.
Compliance: voldoet aan de FINRA-/SOC 2-eisen voor het opsporen van inactieve gebruikers in O365.
Quick-start guide
NinjaOne integreert met verschillende toonaangevende antivirusoplossingen om het beveiligingsbeheer en de detectie van bedreigingen op beheerde devices te verbeteren. Dit zijn de belangrijkste antivirusintegraties in NinjaOne:
1. Bitdefender GravityZone
- Start antivirusscans rechtstreeks vanuit het NinjaOne-dashboard.
- Bekijk en verhelp bedreigingen zoals bestanden in quarantaine, actieve of geblokkeerde bestanden.
- Synchroniseer dreigingsgegevens tussen NinjaOne en Bitdefender voor updates in realtime.
2. SentinelOne
- Rol SentinelOne-beleid uit op groepsniveau voor centraal beheer.
- Voer volledige schijfscans uit en verhelp bedreigingen rechtstreeks vanuit NinjaOne.
- Monitor de status van agents en bekijk gedetailleerde activiteitenlogboeken.
3. Webroot
- Integreer Webroot voor het scannen en verhelpen van bedreigingen in realtime.
- Bekijk scanresultaten en beheer bedreigingen via de interface van NinjaOne.
4. CrowdStrike Falcon (EDR & EPP)
- Importeer gegevens over kwetsbaarheden uit CrowdStrike Spotlight voor centrale opvolging.
- Schakel exposure management in om risico’s te signaleren en te beperken.
Maak Active Directory Management eenvoudiger met NinjaOne
NinjaOne stroomlijnt het controleren van verouderde accounts met ingebouwde automatisering.
- Scripts uitrollen: automatiseer PowerShell-audits (methoden 1-2) over tenants en endpoints heen.
- Detectie van lokale accounts: scan Windows 11-devices op onbevoegde beheerders en markeer verouderde accounts in realtime.
- Geplande rapportages: genereer maandelijkse 30-daagse rapporten over inactieve Office 365-accounts en exporteer ze met één klik.
- Beleidshandhaving: pas GPO-equivalente beperkingen toe (methode 4) om het principe van minste voorrecht af te dwingen.
- Notificaties: ontvang een melding bij nieuwe lokale beheerders of global admins die 30 dagen of langer inactief zijn.
- Beveiligingsbaselines: dwing CIS-/NIST-controles af om risicovolle accounts automatisch uit te schakelen.
Verbeter de beveiliging van Active Directory met meer grip op adminaccounts.
Beveilig uw omgeving: verouderde accounts in Active Directory opsporen
Het controleren en verwijderen van verouderde adminaccounts vormt de basis van identiteitsbeveiliging en met deze gids beschikt u over beproefde methoden om die verborgen risico’s weg te nemen.
Met deze technieken sluit u vergeten achterdeuren af die aanvallers kunnen misbruiken en voldoet u aan compliance-eisen zoals SOC 2 of GDPR. Begin vandaag nog met maandelijkse audits en houd uw omgeving veilig en auditklaar.
Gerelateerde onderwerpen
- Active Directory opschonen: beste praktijken en tips
- Zo installeert en importeert u de PowerShell-module voor Active Directory
- Zo maakt u op afstand verbinding met Active Directory en beheert u gebruikers
- Active Directory-back-up: overzicht met voorbeelden
- NinjaOne01 Monitoring van wijzigingen in Active Directory-gebruikers
