Het afdwingen van aanmeldbeperkingen voor gebruikers verkleint het aanvalsoppervlak buiten kantooruren en ondersteunt compliance met access policies voor gegevens. Active Directory (AD) biedt weliswaar ingebouwde beperkingen voor aanmeldtijden, maar met scripts hebt u meer flexibiliteit. In dit artikel leest u hoe u met logon scripts aanmeldtijden per afdeling beperkt.
Met logon scripts aanmeldtijden per afdeling beperken
Het afdwingen van aanmeldbeperkingen bestaat uit vier onderdelen: het bepalen van de afdeling en het toegestane aanmeldvenster, het maken van het script, het uitrollen ervan via Groepsbeleid en het wegschrijven van de handhavingsstatus naar het register. U kunt aanmeldtijden ook via CMD instellen als u AD gebruikt.
📌 Vereisten:
- Windows 10/11-systemen in een domein of werkgroep
- Editor voor groepsbeleid (of lokale GPO)
- PowerShell 5.1+ of toegang tot CMD-scripting
- Beheerdersrechten om aanmeldscripts toe te passen via GPO of RMM
📌 Aanbevolen uitrolstrategieën:
| Klik om een methode te kiezen | 💻 Het beste voor individuele gebruikers | 💻💻💻 Het beste voor grote organisaties |
| Stap 1: bepaal de afdeling en het toegestane aanmeldvenster | ✓ | |
| Stap 2: maak de logica van het logon script | ✓ | |
| Stap 3: rol het logon script uit via Groepsbeleid | ✓ | |
| Stap 4: schrijf de handhavingsstatus weg naar het register | ✓ | |
| Alternatieve methode: CMD en net user-alternatieven | ✓ |
Vier stappen en een alternatieve methode – bekijk het visuele overzicht op Zo gebruikt u logon scripts om aanmeldtijden per afdeling te beperken.
Stap 1: bepaal de afdeling en het toegestane aanmeldvenster
De eerste stap bij het afdwingen van aanmeldbeperkingen is het vastleggen van aanmeldvensters per afdeling.
📌 Use case: een IT-beheerder die AD-afdelingsattributen rechtstreeks wil koppelen aan specifieke aanmeldschema’s, zonder per gebruiker handmatig regels in te stellen
- Druk op Win, typ PowerShell en klik op Als administrator uitvoeren.
- Kopieer en plak de volgende code in de prompt en druk op Enter:
$allowedTimes = @{
"Sales" = @{Start = 8; End = 18}
"Finance" = @{Start = 7; End = 17}
"IT" = @{Start = 0; End = 23}
"Default" = @{Start = 9; End = 17}
}
Wilt u de afdeling van de gebruiker detecteren via een AD-attribuut, kopieer en plak dan in plaats daarvan het volgende script:
$user = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$department = (Get-ADUser $user.Name -Properties Department).Department
Stap 2: maak de logica van het logon script
Zodra u de aanmeldvensters hebt gedefinieerd, is de volgende stap het opstellen van de logica van het aanmeldscript.
📌 Use case: beheerders die direct een aanpasbaar beperkingsscript willen dat aanmeldtijden afdwingt
- Druk op Win, typ PowerShell en klik op Als administrator uitvoeren.
- Kopieer en plak de volgende code in de prompt en druk op Enter:
| # Current hour $now = (Get-Date).Hour# Department (fallback to Default if missing) $dept = if ($department) { $department } else { "Default" }if (-not $allowedTimes.ContainsKey($dept)) { $dept = "Default" }# Allowed time window$start = $allowedTimes[$dept].Start $end = $allowedTimes[$dept].End# Check access if ($now -lt $start -or $now -ge $end) { Add-Type -AssemblyName PresentationFramework $startTime = "{0:D2}:00" -f $start $endTime = "{0:D2}:00" -f $end [System.Windows.MessageBox]::Show( "Login not allowed at this time.`nYou may log in between $startTime and $endTime.", "Access Restricted",'OK','Error') # Safer alternative: log off instead of hard shutdown Start-Process "shutdown.exe" -ArgumentList "/l" -NoNewWindow} |
⚠️ Waarschuwing: test de wijziging eerst op een lokale machine voordat u deze op verschillende endpoints uitrolt. (Meer informatie vindt u bij: Waar u op moet letten)
Stap 3: rol het logon script uit via Groepsbeleid
De volgende stap is het uitrollen van het logon script via Groepsbeleid.
📌 Use case: een IT-beheerder die meerdere endpoints beheert en de voorkeur geeft aan een schaalbare, centrale aanpak om aanmeldbeperkingen voor alle gebruikers af te dwingen
- Druk op Win + R, typ gpmc.msc en druk op Enter.
- Ga naar het volgende:
Gebruikersconfiguratie > Windows-instellingen > Scripts (aanmelden/afmelden)
- Voeg daarna het PowerShell-script toe.
- Zorg dat Uitvoeringsbeleid is ingesteld op RemoteSigned via:
Computerconfiguratie > Beheersjablonen > Windows-onderdelen > Windows PowerShell > Uitvoeren van scripts inschakelen
- Stel in op: lokale scripts en op afstand ondertekende scripts toestaan.
Stap 4: schrijf de handhavingsstatus weg naar het register
Zodra u het beleid hebt afgedwongen, kunt u de handhavingsacties lokaal vastleggen met een PowerShell-script.
📌 Use case: IT-beheerders die een lokaal audittrail willen aanleggen waaruit blijkt wanneer aanmeldbeperkingen zijn afgedwongen
- Druk op Win, typ PowerShell en klik op Als administrator uitvoeren.
- Kopieer en plak de volgende code in de prompt en druk op Enter:
New-Item -Path "HKLM:\SOFTWARE\Org\LogonRestrictions" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\LogonRestrictions" -Name "LastEnforced" -Value (Get-Date).ToString("u")
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\LogonRestrictions" -Name "Status" -Value "Login blocked due to after-hours access"
Vervolgens kunt u met CMD controleren wat er in uw aangepaste registersleutel staat.
- Druk op Win, typ cmd en klik op Als administrator uitvoeren.
- Kopieer en plak de volgende code in de prompt en druk op Enter:
reg query HKLM\SOFTWARE\Org\LogonRestrictions
⚠️ Waarschuwing: zorg dat u het juiste script kopieert en plakt, want een onjuiste syntaxis kan fouten veroorzaken. (Meer informatie vindt u bij: Waar u op moet letten)
Alternatieve methode: CMD en net user-alternatieven
Dit is een alternatieve manier om aanmeldtijden in te stellen als u Active Directory gebruikt.
📌 Use case: beheerders die aanmeldtijden willen beperken met een ingebouwde methode, zonder scripts uit te rollen
- Druk op Win, typ cmd en klik op Als administrator uitvoeren.
- Kopieer en plak de volgende code in de prompt en druk op Enter:
net user username /times:M-F,8am-6pm;Sa-Su,0am-0am
💡 Tip: deze instelling wordt rechtstreeks op het niveau van de domein controller toegepast.
⚠️ Let op: deze methode heeft beperkingen. Zo biedt ze geen handhaving via de UI en is ze niet per afdeling aan te passen, tenzij u aparte OU-targeting (Organizational Unit) gebruikt.
⚠️ Waar u op moet letten
| Risico’s | Mogelijke gevolgen | Herstelacties |
| Niet testen op een lokale machine | Het uitrollen van een ongetest script kan ertoe leiden dat devices crashen door problemen zoals incompatibele registersleutels. | Pas de gewenste wijzigingen toe op een lokale machine en controleer daarna of de configuratie het beoogde resultaat oplevert. |
| Onjuiste commandosyntaxis | Een onjuiste commandosyntaxis kan leiden tot beschadiging van het register, vreemd systeemgedrag of code die helemaal niets doet. | Zorg dat u het juiste script in de prompt kopieert en plakt. U kunt ook apps als PSScriptAnalyzer gebruiken om de codekwaliteit te controleren. |
Aanvullende overwegingen
Bepaalde gebruikerssituaties vragen om een speciale aanpak om onbedoelde uitsluitingen of verstoringen te voorkomen. Hieronder staan veelvoorkomende uitzonderingen waarmee u rekening moet houden bij het toepassen van aanmeldbeperkingen.
Break-glass-accounts
Break-glass-accounts zijn noodbeheerdersaccounts die worden gebruikt als de belangrijkste identity provider uitvalt. Voeg voor deze accounts altijd een uitzondering toe met het volgende PowerShell-script:
if ($user -in $breakGlassAccounts) { return "Bypass restrictions" }
Meerdere tijdzones
Gebruikers in verschillende tijdzones hebben niet dezelfde kantooruren. Als uw $allowedTimes uitgaat van UTC+8 terwijl uw Amerikaanse medewerkers om 9 uur hun lokale tijd inloggen, kunnen zij geweigerd worden. U kunt dit oplossen door alle controles naar UTC om te zetten en gebruikers aan hun tijdzone te koppelen.
Serviceaccounts
Serviceaccounts zijn niet-menselijke accounts die door apps of kiosksystemen worden gebruikt. Deze accounts hebben 24/7 toegang nodig en als u ze blokkeert, kunnen automatiseringen stuklopen. U kunt dit oplossen door ze in een aparte AD-groep te plaatsen en logica toe te voegen die de beperkingen omzeilt.
Laptopgebruikers
Medewerkers die internationaal reizen melden zich mogelijk buiten hun gebruikelijke kantooruren aan, waardoor hun toegang wordt geweigerd. In dat geval kunt u het beste AD-groepen voor uitzonderingen gebruiken of een scriptvlag toevoegen om beperkingen tijdelijk op te heffen voor specifieke gebruikers.
Veelvoorkomende problemen oplossen
Bij het gebruik van logon scripts om aanmeldbeperkingen af te dwingen kunt u problemen tegenkomen die de betrouwbaarheid en de UX beïnvloeden. Hieronder staan enkele veelvoorkomende problemen en hoe u ze aanpakt.
Script wordt niet uitgevoerd
Sommige scripts worden niet uitgevoerd tijdens het aan- of afmelden, meestal door toegangsproblemen en een restrictief PowerShell-uitvoeringsbeleid. U lost dit op door Get-ExecutionPolicy uit te voeren en het beleid bij te werken met Set-ExecutionPolicy RemoteSigned.
Onjuiste detectie van de afdeling
Scripts kunnen gebruikers verkeerd indelen als de AD-gegevens inconsistent zijn. Controleer daarom de attribuutwaarden met PowerShell om te bevestigen dat de afdelingsvelden zijn ingevuld door Get-ADUser -Identity username -Property Department uit te voeren.
Afmelden wordt niet afgedwongen
Sommige gebruikers blijven aangemeld, ook als de beperkingen bij het aanmelden wel werken, waardoor ze tijdgebonden beleid omzeilen. Wijs in dat geval afmeldscripts toe via Groepsbeleid om de sessie te beëindigen. U kunt ook een geplande taak instellen die op vaste tijden afmeldingen uitvoert.
Gebruiker wordt geforceerd opnieuw opgestart
Sommige beheerders gebruiken Stop-Computer om sessies te beëindigen. Dat werkt, maar het script kan gegevensverlies bij de gebruiker veroorzaken door het geforceerd afsluiten of opnieuw opstarten.
Een alternatief is logoff.exe. Met dit commando wordt de gebruiker afgemeld zonder dat het device opnieuw opstart, wat voor minder verstoring zorgt.
NinjaOne-diensten die het beheer van aanmeldbeperkingen versterken
MSP’s (Managed Services Providers) kunnen met NinjaOne tijdgebonden toegangsregels bij klanten afdwingen en erover rapporteren zonder afhankelijk te zijn van AD- of Azure-licenties.
NinjaOne versterkt het beheer van aanmeldbeperkingen door:
- Scripts voor aanmeldbeperkingen op afstand uit te rollen bij meerdere tenants
- Registersleutels te scannen om per device te bevestigen dat het beleid is toegepast
- Te waarschuwen bij aanmeldpogingen buiten de beleidsvensters via gebeurtenissen of scriptuitvoer
- Endpoints of gebruikers te taggen die de aanmeldgrenzen overschrijden
- Terugdraai- of uitzonderingsprocessen voor afdelingsspecifieke toegang te automatiseren
Dwing aanmeldgrenzen af met logon scripts
Aanmeldtijden per afdeling regelen helpt u werkbeleid af te dwingen, de beveiliging te verbeteren en compliance te behouden. Door deze beperkingen met logon scripts te implementeren, verkleint u bovendien het aanvalsoppervlak buiten kantooruren en ondersteunt u compliance met access policies voor gegevens.
Gerelateerde onderwerpen:
- Lokaal aanmelden weigeren voor gebruikers en groepen in Windows 10
- Mislukte aanmeldpogingen in Windows opsporen met PowerShell
- Gebruikers toestaan of beletten hun wachtwoord te wijzigen in Windows 10 en 11
- Aanmelden met een afbeeldingswachtwoord in- of uitschakelen in Windows 10
- De instelling “Aanmelden vereisen bij activeren” in- of uitschakelen in Windows 11
Quick-start guide
Met de flexibele scripting- en beleidsbeheermogelijkheden van NinjaOne kunt u onder meer:
- Een aangepast script maken dat tijdgebonden aanmeldbeperkingen toepast
- Geplande automatiseringen gebruiken om aanmeldtoegang te regelen
- Beleidsvoorwaarden inzetten om aanmeldgedrag te beheren
