/
/

Zo gebruikt u logon scripts om aanmeldtijden per afdeling te beperken

door Team Ninja
How to Use Logon Scripts to Enforce Login Time Restrictions Across Departments 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.

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

  1. Druk op Win, typ PowerShell en klik op Als administrator uitvoeren.
  2. 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

  1. Druk op Win, typ PowerShell en klik op Als administrator uitvoeren.
  2. 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

  1. Druk op Win + R, typ gpmc.msc en druk op Enter.
  2. Ga naar het volgende:

Gebruikersconfiguratie > Windows-instellingen > Scripts (aanmelden/afmelden)

  1. Voeg daarna het PowerShell-script toe.
  2. Zorg dat Uitvoeringsbeleid is ingesteld op RemoteSigned via:

Computerconfiguratie > Beheersjablonen > Windows-onderdelen > Windows PowerShell > Uitvoeren van scripts inschakelen

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

  1. Druk op Win, typ PowerShell en klik op Als administrator uitvoeren.
  2. 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.

  1. Druk op Win, typ cmd en klik op Als administrator uitvoeren.
  2. 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

  1. Druk op Win, typ cmd en klik op Als administrator uitvoeren.
  2. 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’sMogelijke gevolgenHerstelacties
Niet testen op een lokale machineHet 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 commandosyntaxisEen 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:

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

Dit vindt u misschien ook leuk

Klaar om de moeilijkste delen van IT te vereenvoudigen?