/
/

Zo controleert en verwijdert u verouderde adminaccounts in Active Directory over meerdere tenants

door Team Ninja
How to Audit and Remove Stale Admin Accounts Across Tenants in Active Directory blog banner image

Directe samenvatting

Deze blogpost van NinjaOne biedt een uitgebreide basislijst met CMD-commands en een deep dive duik in Windows-commands met meer dan 70 essentiële cmd-commands voor zowel beginners als gevorderden. Het legt praktische opdrachtpromptcommando’s uit voor file management, directory navigation, network troubleshooting, disk operations en automatisering met echte voorbeelden om de productiviteit te verbeteren. Of u nu fundamentele cmd-commands leert of geavanceerde Windows CLI-tools onder de knie krijgt, deze gids helpt u de Command Prompt effectiever te gebruiken.

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:

  1. Open PowerShell (als administrator).
    • Druk op Win + X en selecteer Windows Terminal (administrator).
  2. 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.
  1. Maak een lijst van alle adminaccounts:

$admins = Get-MgRoleManagementDirectoryRoleAssignment |
Where-Object { (Get-MgDirectoryRole -DirectoryRoleId $_.RoleDefinitionId).DisplayName -match "Admin" } |
ForEach-Object { Get-MgUser -UserId $_.PrincipalId }

  1. 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.UserPrincipalName
LastSignIn = if ($lastSignIn) { $lastSignIn.CreatedDateTime } else { "Never" }
DaysInactive= $daysInactive
RiskStatus = if ($daysInactive -ge 30) { "STALE" } else { "Active" }
}
}

    • Een account geldt als verouderd wanneer de laatste aanmelding 30 dagen of langer geleden is.
  1. 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:

  1. 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.
  1. Controleer het tijdstip van de laatste aanmelding:

Get-LocalUser |
Where-Object {$_.Enabled -eq $true} |
Select-Object Name, LastLogon

  1. Schakel verouderde accounts uit of verwijder ze (30 dagen of langer inactief):

Disable-LocalUser -Name "LegacyAdmin" # First disable
Remove-LocalUser -Name "LegacyAdmin" # Then delete permanently

  1. Schaal op naar alle devices met het RMM-script (zoals NinjaOne):

$computers = Get-ADComputer -Filter * | Select-Object -ExpandProperty Name
Invoke-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:

  1. 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.
  1. 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.
  1. Handmatige registercontrole (geavanceerd alternatief):

reg save HKLM\SAM sam.bak
reg 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:

  1. 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.
  1. 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\OldAdmin
DOMAIN\Contractor_2020

      • Hiermee blokkeert u interactieve aanmelding voor de opgegeven accounts.
  1. 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 > LAPS
Enable "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:

  1. 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.
  1. 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:

$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"

  1. 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’sMogelijke gevolgenHerstelacties
1. Inconsistente aanmeldgegevensVals-positieven waardoor actieve beheerders worden uitgeschakeld1. Controleer of de unified audit logs zijn ingeschakeld.

2. Voer Get-MgAuditLogSignIn -UserId [email protected] uit om de activiteit te valideren.

2. Lokale beheerders worden niet gedetecteerdGemiste verouderde accounts op endpoints1. Geef de RMM-agent administratorrechten.

2. Gebruik icacls C:\Windows\System32\config\SAM /grant "NETWORK SERVICE":RX voor toegang tot het register.

3. Verwijdering van een beschermd accountVerstoring van kritieke services1. Controleer de vlag msDS-ProtectedFromAccidentalDeletion.

2. Valideer de GPO-handhaving met gpresult /H gpreport.html.

4. Authenticatiefouten bij de Graph APIScriptfouten tijdens de automatisering1. Valideer de scopes met Get-MgContext.

2. Gebruik Connect-MgGraph -Scopes "Directory.ReadWrite.All" voor schrijfbewerkingen.

5. Beschadiging van het registerHet 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-handhavingBuitengesloten van alle devices1. Behoud het break-glass-account in de GPO.

2. Draai terug via dcgpofix /target:DC op domeincontrollers.

7. Te agressieve automatiseringOnbedoeld massaal uitschakelen van actieve gebruikers1. 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.

💻 Probeer NinjaOne RMM gratis of bekijk een demo.

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

FAQs

Een verouderd account is elk gebruikers- of computeraccount dat binnen een vastgestelde periode (meestal 30, 60 of 90 dagen) niet is geauthenticeerd, aangemeld of van wachtwoord is gewisseld. Die inactiviteit kan erop wijzen dat het account niet meer wordt gebruikt.

Verouderde adminaccounts vormen een groot beveiligingsrisico, omdat aanvallers vaak inactieve of niet-gemonitorde geprivilegieerde accounts misbruiken om blijvende toegang te krijgen, zich lateraal te verplaatsen en hun rechten binnen een domein te verhogen.

Ja, automatisering is mogelijk met geplande PowerShell-scripts, rapportage via Group Policy, tools voor de gezondheid van AD of RMM-platforms die doorlopend scannen op inactieve accounts en IT-teams waarschuwen zodra accounts de inactiviteitsdrempel overschrijden.

De beste praktijk is om het account eerst uit te schakelen, te letten op onverwachte servicestoringen, te controleren of geen enkele applicatie van de referenties afhankelijk is en het account pas te verwijderen wanneer vaststaat dat de gebruiker of het device niet meer nodig is.

Dit vindt u misschien ook leuk

Klaar om de moeilijkste delen van IT te vereenvoudigen?