Belangrijkste punten
- Automatiseer wachtwoordwijzigingen met Azure Key Vault en PowerShell en elimineer zo het risico van verouderde, handmatig beheerde lokale adminreferenties.
- Sla elk geroteerd wachtwoord op als versioned secret in Key Vault in plaats van in een gedeelde spreadsheet of een ticket.
- Beperk wie een opgeslagen wachtwoord kan ophalen met role-based access control (RBAC)-rollen, Key Vault Private Endpoints en gelogde toegang.
- Houd per device de datum van de laatste rotatie bij in het register om te bevestigen dat het schema draait.
- Ondersteun de automatisering met een wachtwoordbaseline via Group Policy, zodat handmatige noodlogins compliant blijven.
- Roteer elke 30 tot 90 dagen, afhankelijk van uw compliance-kader, en roteer direct na elke blootstelling van referenties.
Automatisering gebruiken om lokale adminwachtwoorden te roteren is een cruciale stap in risicobeperking. De risico’s, die vooral de beveiliging raken, ontstaan meestal wanneer referenties handmatig worden beheerd. Dankzij PowerShell en Azure Key Vault verloopt dat automatiseringsproces gestroomlijnd: de menselijke factor verdwijnt, referenties worden veilig beheerd en u krijgt sterke beveiliging, compliance en controleerbaarheid.
Deze methode heeft als belangrijkste doelen om wachtwoorden periodiek te roteren op alle devices, wachtwoorden veilig op te slaan in Azure Key Vault, toegang en ophaalactiviteit te auditen en te voldoen aan Zero Trust en LAPS-conforme beste praktijken. In deze gids leggen we stap voor stap uit hoe u Azure Key Vault instelt, wachtwoordrotatie scriptt, beveiligingsmaatregelen afdwingt en compliance op al uw endpoints valideert.
Nog nieuwsgierig? Bekijk onze video “Zo roteert u lokale adminwachtwoorden veilig met PowerShell en Azure Key Vault” voor een visuele uitleg.
In één oogopslag:
| Taak | Doel |
| Taak 1: Azure Key Vault configureren voor wachtwoordopslag | Veilige, centrale opslag voor lokale adminwachtwoorden inrichten met Azure Key Vault |
| Taak 2: een PowerShell-script maken om wachtwoorden te roteren | Veilige wachtwoordgeneratie en -rotatie automatiseren met eigen PowerShell-scripts |
| Taak 3: toegang tot wachtwoorden beveiligen en beperken | Toegang tot opgeslagen referenties beperken met Key Vault RBAC, managed identities of PIM |
| Taak 4: wachtwoorden veilig ophalen (optioneel adminherstel) | Geautoriseerd herstel van lokale wachtwoorden toestaan via veilige PowerShell-methoden |
| Taak 5: het register gebruiken om rotatietijd of metadata bij te houden (optioneel) | Tijdstempel of metadata opslaan in het Windows-register om wachtwoordwijzigingen te verifiëren of auditen |
| Taak 6: wachtwoordbeleid afdwingen via Group Policy | Zorgen dat veilige lokale wachtwoordconfiguraties consistent via GPO worden toegepast |
| Taak 7: wachtwoordrotatie valideren met CMD en PowerShell | Systeemcommando’s uitvoeren om wachtwoordwijzigingen te verifiëren en de toegangsstatus te controleren |
Vereisten voor het automatiseren van de rotatie van lokale adminwachtwoorden
Controleer voordat u met de taken begint of uw omgeving aan de volgende voorwaarden voldoet:
- Een Azure-abonnement met een ingerichte Azure Key Vault (Azure Key Vault is een veilige secretsopslag voor wachtwoorden, sleutels en certificaten, met versleuteling op hardwareniveau, die Zero Trust en het principe van minste voorrecht ondersteunt.)
- Devices die zijn gekoppeld aan Azure AD of hybride zijn gekoppeld
- Een bekend lokaal administratoraccount (bijvoorbeeld “localadmin”)
- PowerShell-remoting ingeschakeld
- Geïnstalleerde modules: Accounts, Az.KeyVault
- Administratorrechten op alle doelmachines
Taak 1: Azure Key Vault configureren voor wachtwoordopslag
Use case:
Met deze taak richt u de Azure Key Vault in en stelt u het toegangsmodel zo in dat alleen geautoriseerde identiteiten opgeslagen wachtwoorden kunnen schrijven en lezen. Ook schakelt u retentiebescherming in zodat een geroteerd secret nooit definitief verloren gaat.
Netwerkbeperkingen zoals firewallregels en Private Endpoints, plus auditlogging, configureert u in Taak 3. Secrets worden standaard versleuteld met een HSM-backed sleutel, dus een aparte HSM-configuratie is hier niet nodig.
- Ga naar Key Vaults > Maken en stel de resourcegroep en regio in.
- Ken onder Toegangsbeleid aan serviceaccounts of automatiseringsgebruikers machtigingen toe zoals Set en Get voor secrets.
- Schakel Voorlopig verwijderen en Beveiliging tegen opschonen in voor veilige retentie.
- Gebruik eventueel RBAC in plaats van toegangsbeleid voor toegangsbeheer en controleerbare toewijzingen.
- Kies een naamgevingsconventie voor secrets, bijvoorbeeld AdminPassword-<deviceName>.
Let op: u hoeft het secret niet vooraf aan te maken, want het script uit Taak 2 maakt het automatisch aan bij de eerste wachtwoordrotatie.
Taak 2: een PowerShell-script maken om wachtwoorden te roteren
Use case:
Deze taak genereert een nieuw lokaal adminwachtwoord, slaat het op in Key Vault en past het pas daarna lokaal toe. Zo blijft een device nooit achter met een wachtwoord dat niet meer te herstellen is omdat het schrijven naar Key Vault mislukte. U kunt het uitrollen via Azure Automation, Taakplanner, scriptimplementatie in Intune of NinjaOne voor grootschalige distributie, maar de onderstaande authenticatiemethode werkt alleen op bepaalde implementatiedoelen. (Zie de opmerking na het script)
- Open PowerShell als administrator. Druk op de Windows-toets, typ PowerShell, klik met de rechtermuisknop op Windows PowerShell en kies Als administrator uitvoeren.
- Voer het volgende commando uit:
# Windows PowerShell 5.1
Add-Type -AssemblyName System.Web
$DeviceName = $env:COMPUTERNAME
$AdminUser = "localadmin"
$VaultName = "MySecureVault"
$SecretName = "AdminPassword-$DeviceName"
$NewPassword = [System.Web.Security.Membership]::GeneratePassword(20,4)
# Step 1: Save the new password to Key Vault BEFORE changing it locally.
try {
Connect-AzAccount -Identity -ErrorAction Stop
Set-AzKeyVaultSecret -VaultName $VaultName -Name $SecretName `
-SecretValue (ConvertTo-SecureString $NewPassword -AsPlainText -Force) `
-ErrorAction Stop
}
catch {
Write-Error "Key Vault write failed for $DeviceName — local password was NOT changed. $_"
exit 1
}
# Step 2: Only apply the new password locally after Key Vault confirms the write.
try {
net user $AdminUser $NewPassword
if ($LASTEXITCODE -ne 0) { throw "net user returned exit code $LASTEXITCODE" }
}
catch {
Write-Error "Local password change failed for $DeviceName AFTER the new password was already saved to Key Vault. The stored secret and the live local password are now out of sync — investigate manually. $_"
exit 1
}
Write-Output "Password rotation completed successfully for $DeviceName."
Omdat System.Web niet beschikbaar is voor PowerShell 7, vindt u hieronder een vervangend script dat u voor PowerShell 7 kunt gebruiken:
function New-RandomPassword { param([int]$Length = 20, [int]$MinNonAlphanumeric = 4) $alphaNum = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' $symbols = '!@#$%^&*()-_=+[]{}' $nonAlphaCount = Get-Random -Minimum $MinNonAlphanumeric -Maximum ($Length - $MinNonAlphanumeric) $chars = 1..($Length - $nonAlphaCount) | ForEach-Object { $alphaNum[(Get-Random -Maximum $alphaNum.Length)] } $chars += 1..$nonAlphaCount | ForEach-Object { $symbols[(Get-Random -Maximum $symbols.Length)] } -join ($chars | Sort-Object { Get-Random })}$NewPassword = New-RandomPassword -Length 20 -MinNonAlphanumeric 4
Let op: Connect-AzAccount -Identity heeft een managed identity van de Instance Metadata Service van Azure nodig en werkt daarom alleen op Azure-resources, zoals Azure Automation, Azure VM’s of Arc-enabled servers.
Taak 3: toegang tot wachtwoorden beveiligen en beperken
Use case:
Met deze taak beperkt u de toegang tot Azure Key Vault tot aangewezen herstelmedewerkers via RBAC-rollen, zodat alleen geautoriseerde gebruikers in noodgevallen lokale adminwachtwoorden kunnen ophalen.
Volg deze beste praktijken om uw Azure Key Vault-secrets te beveiligen, toegang volgens het principe van minste voorrecht af te dwingen en auditing en incidentrespons te ondersteunen.
- Beperk toegang met RBAC-rollen (bijvoorbeeld Reader, Secret Reader) of toegangsbeleid.
- Schakel logging in via Azure Monitor of Diagnostische instellingen om het ophalen van secrets te volgen.
- Gebruik Key Vault Private Endpoints om toegang via de Azure-backbone te beperken in plaats van via het publieke internet.
- Verleen alleen ophaalrechten aan aangewezen automatiseringsaccounts of geautoriseerd personeel dat herstelwerkzaamheden uitvoert.
Taak 4: wachtwoorden veilig ophalen (optioneel adminherstel)
Use case:
Deze taak gebruikt u in herstelscenario’s waarin administrators een lokaal adminwachtwoord uit Key Vault moeten ophalen.
- Open PowerShell als administrator. Druk op de Windows-toets, typ PowerShell, klik met de rechtermuisknop op Windows PowerShell en kies Als administrator uitvoeren.
- Voer het volgende commando uit:
Connect-AzAccount -Identity
$VaultName = "MySecureVault"
$DeviceName = "LAPTOP-1234"
$SecretValue = Get-AzKeyVaultSecret -VaultName $VaultName -Name "AdminPassword-$DeviceName" -AsPlainText
Let op: -Identity werkt alleen waar een managed identity bestaat. Voert een administrator dit interactief uit op de eigen werkplek, gebruik dan Connect-AzAccount en zorg dat het account de rol Key Vaults Secrets User heeft.
- Denk eraan om:
- Alle ophaalgebeurtenissen te loggen
- Ophalen alleen te gebruiken in noodgevallen of geautoriseerde herstelworkflows
- Het wachtwoord zo nodig direct na het ophalen te roteren
Taak 5: het register gebruiken om rotatietijd of metadata bij te houden (optioneel)
Use case:
Met deze taak controleert u of de wachtwoordrotatie op een device heeft plaatsgevonden. U kunt het tijdstempel van de laatste rotatie bijhouden in het Windows-register.
- Open PowerShell als administrator. Druk op de Windows-toets, typ PowerShell, klik met de rechtermuisknop op Windows PowerShell en kies Als administrator uitvoeren.
- Voer het volgende commando uit:
New-ItemProperty -Path "HKLM:\SOFTWARE\Org\AdminPasswordRotation" `
-Name "LastRotation" -PropertyType String -Value (Get-Date).ToString("u") -Force
Taak 6: wachtwoordbeleid afdwingen via Group Policy
Use case:
Deze taak garandeert wachtwoordcomplexiteit, ook in handmatige noodscenario’s. Het dwingt compliance af en zorgt voor consistentie in het referentiebeleid van uw organisatie, ook buiten de geautomatiseerde rotaties om.
- Open Group Policy als administrator. Druk op de Windows-toets, typ gpedit.msc en druk op Ctrl + Shift + Enter om het als administrator uit te voeren.
- Ga naar: Computerconfiguratie > Windows-instellingen > Beveiligingsinstellingen > Accountbeleid > Wachtwoordbeleid
- Stel het volgende in:
- Minimale wachtwoordlengte = 20 tekens
- Wachtwoord moet voldoen aan complexiteitsvereisten = Ingeschakeld
- Maximale wachtwoordduur = 30 dagen
Taak 7: wachtwoordrotatie valideren met CMD en PowerShell
Use case:
Deze taak gebruikt de opdrachtprompt en PowerShell om te bevestigen dat de automatisering werkt en dat wachtwoorden regelmatig worden bijgewerkt.
- Open de opdrachtprompt of PowerShell.
- Voer de volgende commando’s uit:
| Validatietaak | CMD-commando | PowerShell-commando |
| Recente gebeurtenissen van wachtwoordwijzigingen controleren | wevtutil qe Security "/q:*[System[(EventID=4723)]]" /c:3 /f:text | Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4723} -MaxEvents 3 | Format-List |
| Lokale gebruikers weergeven | net user | Get-LocalUser |
| DNS-resolutie voor Key Vault testen | nslookup <yourvaultname>.vault.azure.net | Resolve-DnsName -Name "<yourvaultname>.vault.azure.net" |
| Status van de taak in Taakplanner controleren | schtasks /query /tn "RotateLocalAdminPassword" | Get-ScheduledTask -TaskName "RotateLocalAdminPassword" |
Waar u op moet letten
| Risico’s | Mogelijke gevolgen | Oplossingen |
| Script werkt het wachtwoord niet bij | Het wachtwoord blijft ongewijzigd, waardoor het endpoint kwetsbaar blijft voor brute force of hergebruikte referenties. | Voeg logging toe om de uitvoering te bevestigen, test scripts handmatig vóór de automatisering en bewaak de geschiedenis van Taakplanner. |
| Wachtwoord wordt bijgewerkt, maar niet opgeslagen in Key Vault | Veroorzaakt verlies van toegang tot referenties, vooral in herstelscenario’s | Schakel foutafhandeling en bevestigingslogging in en valideer de schrijftoegang tot Key Vault vóór de rotatie. |
| Key Vault-toegang verkeerd geconfigureerd | Onbevoegde gebruikers krijgen mogelijk toegang tot referenties of het rotatiescript mislukt door geweigerde toegang. | Controleer RBAC- en Key Vault-beleid regelmatig en beperk toegang tot secrets tot één bevoorrechte groep. |
| Rotatie-interval wordt niet afgedwongen | Wachtwoorden blijven mogelijk lang ongewijzigd, in strijd met het beveiligingsbeleid | Gebruik geplande taken met een vast interval en bewaak de registersleutel of auditlogs ter bevestiging. |
| Problemen met tijdsynchronisatie tussen endpoints | Kan de timing van geplande taken beïnvloeden of onjuiste aannames in auditlogs veroorzaken | Synchroniseer de tijd via NTP en gebruik een centrale log of SIEM voor consistente validatie van tijdstempels. |
Aanvullende overwegingen bij geautomatiseerde rotatie van lokale adminwachtwoorden
- Limieten van Azure Key Vault: houd rekening met naamgevingslimieten en request throttling als u honderden secrets beheert.
- Log nooit wachtwoorden: log wachtwoorden nooit naar een bestand of het portaal, gebruik altijd secure strings.
- Rotatiefrequentie: elke 30 – 90 dagen wordt aanbevolen, afhankelijk van het compliance-kader.
- Multi-tenant beheer: gebruik tags of resourcegroepen om klantvaults te scheiden in MSP-omgevingen
NinjaOne-diensten voor het configureren van rotatie van lokale adminwachtwoorden
NinjaOne en de bijbehorende tools helpen het beheer van lokale adminwachtwoorden te verbeteren met deze diensten.
| NinjaOne-dienst | Wat het is | Hoe het helpt bij veilige rotatie van lokale adminwachtwoorden |
| Scriptimplementatie | PowerShell-scripts naar endpoints pushen om lokale wachtwoorden veilig te roteren | Zorgt voor consistente, geautomatiseerde wachtwoordrotatie op alle beheerde devices |
| Monitoring van rotatie | Bijhouden wanneer devices hun wachtwoord voor het laatst hebben gewijzigd via registersleutels of scriptlogs | Helpt te verifiëren of de rotatie volgens schema verloopt en signaleert gemiste of mislukte pogingen |
| Key Vault-integratie | Communicatie met Key Vault automatiseren via managed identities of referenties | Maakt het mogelijk wachtwoorden tijdens de rotatie veilig op te slaan en op te halen zonder hardcoded secrets |
| Waarschuwingen en auditing | Technici waarschuwen wanneer een rotatie mislukt of wachtwoorden bijna verlopen | Biedt inzicht in en verantwoording over het slagen of mislukken van wachtwoordrotatie |
| Schaalbaarheid over tenants heen | Per klantomgeving aparte rotatiebeleidsregels en vaultopslag aanhouden. | Maakt veilig en geïsoleerd beheer van referenties mogelijk voor MSP’s die meerdere klanten bedienen |
Lokale adminwachtwoorden roteren voor betere beveiliging
Cyberaanvallen worden steeds geraffineerder en daarom is het cruciaal om strategieën op te zetten die essentiële referenties zoals lokale adminwachtwoorden beschermen. U kunt lokale adminwachtwoorden handmatig roteren, maar automatisering verhoogt de beveiliging aanzienlijk. Deze gids helpt u om:
- Azure Key Vault te configureren voor veilige wachtwoordopslag
- PowerShell te gebruiken om lokale administratorreferenties te roteren en op te slaan
- Wachtwoordbeleid af te dwingen en rotatie bij te houden
- Toegang te beperken en te auditen met RBAC en logging
- De rotatiestatus te valideren met ingebouwde Windows-tools
Bij het uitvoeren van deze taken volgt u de beste praktijken om lokale wachtwoordrotatie efficiënt toe te passen. Zo kunnen IT-administrators en MSP’s hun eindpuntbeveiliging versterken en de operationele controle over hun beheerde omgevingen behouden.
Gerelateerde onderwerpen:
