In Windows kan de ingebouwde Taakplanner worden gebruikt om een actie uit te voeren volgens een schema of wanneer een bepaalde gebeurtenis plaatsvindt. In deze handleiding wordt uitgelegd hoe u een PowerShell-script zo configureert dat het automatisch wordt uitgevoerd met behulp van de Windows Taakplanner. Het PS1-script moet op de achtergrond worden uitgevoerd, geen pop-ups weergeven en ongeacht de huidige beleidsinstellingen voor de uitvoering van het PowerShell-script worden uitgevoerd.
In dit voorbeeld wil ik deC:PSOutlook_Email_to.ps1PowerShell-scriptbestand elke 10 minuten.
Lees meer:AI Script Generator: Zet ideeën om in scripts met AI
- Open deTaakplannerconsole door te rennen
taskschd.msccommando - Vouw de bibliotheekstructuur van Taakplanner uit. Maak voor uw gemak een aparte map voor uw aangepaste geplande taken. Klik met de rechtermuisknop en selecteerTaak maken.

- In deAlgemeentabblad, specificeer de taaknaam en de gebruiker waaronder deze zal worden uitgevoerd. De taak kan automatisch worden uitgevoerd:– wanneer de specifieke gebruiker is ingelogd (
Run only the task is logged in) – of de gebruiker is ingelogd of niet (Run whether user is logged on or not).De tweede modus wordt het vaakst gebruikt. In het tweede geval kunt u opgeven dat de taak moet worden uitgevoerd namens een specifieke gebruiker (de Credentials Manager die wordt gebruikt om het wachtwoord van de gebruiker op te slaan). Als de taak een verhoging vereist, schakel dan de 'Voer uit met de hoogste rechten' optie.


Om te voorkomen dat u een opgeslagen wachtwoord gebruikt, kunt u de taak zo configureren dat deze wordt uitgevoerd als NT AUTHORITYSYSTEM met de hoogste rechten. Voer daarvoor in
SYSTEMin deGebruikerveld.

In een AD-omgeving kunnen de geplande taken worden uitgevoerd namens de door gMSA beheerde serviceaccounts. - In deTriggersGeef op het tabblad de voorwaarde of tijd op waarop de Scheduler-taak moet starten. Als u bijvoorbeeld een taak wilt uitvoeren wanneer een gebruiker zich aanmeldt, selecteert u de optie 'Bij inloggen' trigger en selecteer een frequentie van10minuten in de 'Herhaal de taak elke' optie.


- Als de taak wordt uitgevoerd namens SYSTEM of een gebruiker met een opgeslagen wachtwoord, selecteert u of u de taak wilt uitvoeren wanneer Windows start (Bij het opstarten) en om het periodiek opnieuw op te starten.


- Of gebruik deVolgens een schematrigger om het exacte tijdstip in te stellen waarop de taak moet starten. Voor één taak kunnen meerdere starttriggers worden geconfigureerd.
De planner kan ook een taak uitvoeren wanneer een specifieke gebeurtenis plaatsvindt in de Logboeken (zie Een geplande taak uitvoeren nadat een andere taak is voltooid). - Ga dan naar deActiestabblad. Geef de actie op die moet worden ondernomen wanneer een van de geactiveerde gebeurtenissen plaatsvindt. In dit geval wil ik een PowerShell-script uitvoeren. SelecteerNieuw->Start een programma. Configureer de volgende actie-instellingen:
Programma/script:powershell.exe
Argumenten toevoegen (optioneel):-ExecutionPolicy Bypass -NonInteractive -WindowStyle Hidden -File "C:PSOutlook_Email_to.ps1"
Voordat u het script via de Taakplanner uitvoert, moet u controleren of er geen fouten worden geretourneerd in de onbeheerde modus. Gebruik de volgende opdracht:powershell.exe -file C:PS Outlook_Email_to.ps1 -NoExit - De volgende opties worden gebruikt om een PowerShell-script uit te voeren:
-File– volledig pad naar het scriptbestand (PS1)-ExecutionPolicy— Stel de PowerShell-beleidsinstellingen voor het uitvoeren van scripts in voor de huidige sessie. De huidige beleidsinstellingen worden genegeerd en het script wordt toch uitgevoerd alsOmzeilenis gespecificeerd;-NonInteractive– Geef geen interactieve aanwijzingen weer aan de gebruiker-WindowStyle Hidden– Verberg het PowerShell-consolevenster voor de gebruiker (het script wordt verborgen uitgevoerd). Het PowerShell-promptvenster kan tijdelijk verschijnen en verdwijnen terwijl het script wordt uitgevoerd als de plannertaak is ingesteld om te worden uitgevoerd wanneer de gebruiker zich aanmeldt. Er is alleen geen knipperende prompt voor scripts die zijn gestart in consolesessie 0 (ongeacht of de gebruiker zich heeft aangemeld).-NoProfile— voeg deze optie toe als het script zonder gebruikersprofiel kan werken. Het voorkomt dat het gebruikersprofiel wordt geladen, wat de uitvoering van het script versnelt; - U kunt de volgende handige opties inschakelen in hetInstellingentabblad:
Sta toe dat de taak op aanvraag wordt uitgevoerd
Als de lopende taak niet eindigt wanneer daarom wordt gevraagd, forceer deze dan om te stoppen
Start geen nieuw exemplaar - Sla de taakinstellingen op. Controleer of de nieuwe taak verschijnt in hetTaakplannerinklikbaar. Klik op een taak en selecteerLoopom het te testen.


Als het PowerShell-script met succes is uitgevoerd, wordt er een bericht weergegeven in het Laatste Run-resultaat:The operation completed sucessfully (0x0).
Om alle acties in een tekstlogbestand te loggen, raden we u aan een eenvoudige logfunctie aan het PowerShell-script toe te voegen. Hierdoor kunt u op elk moment gedetailleerde informatie bekijken over alle uitgevoerde acties.
- Gebruik deGeschiedenistabblad om de geschiedenis en resultaten van eerdere taakuitvoeringen te bekijken. Taakgeschiedenis wordt niet standaard opgeslagen in Taakplanner (klik op deSchakel de geschiedenis van alle taken inlink in het deelvenster Acties).


U kunt ook zo'n Scheduler-taak maken om een PowerShell-script uit te voeren vanaf een opdrachtprompt:
$TaskName="CheckOutlookMailbox"
$Trigger = New-ScheduledTaskTrigger -AtStartup
$Trigger.Repetition = (New-ScheduledTaskTrigger -once -at "12am" -RepetitionInterval (New-TimeSpan -Minutes 10) -RepetitionDuration (New-TimeSpan -Minutes 10)).repetition
$User= "NT AUTHORITYSYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -NonInteractive -WindowStyle Hidden -File C:PSOutlook_Email_to.ps1"
Register-ScheduledTask -TaskName $TaskName -Trigger $Trigger -User $User -Action $Action -RunLevel Highest -Force
Er zijn enkele extra zaken waarmee u rekening moet houden bij het uitvoeren van PowerShell-scripts via de Windows Taakplanner:
- Als u het script in de PowerShell Core-omgeving wilt uitvoeren, voert u run uit
pwsh.exein plaats vanpowershell.exe. - Als andere gebruikers met bevoorrechte rechten toegang hebben tot de computer waarop u het PowerShell-script uitvoert, zorg er dan voor dat u de NTFS-toegangsrechten voor het PS1-bestand hebt gewijzigd, zodat zij dit niet kunnen wijzigen.
- Als de taak wordt uitgevoerd als een gebruiker zonder rechten, moet zijn of haar account worden toegevoegd aan het lokale beveiligingsbeleidAanmelden als batchtaak (gpedit.msc-> Computerconfiguratie->Windows-instellingen->Beveiligingsinstellingen->Lokaal beleid->Toewijzing van gebruikersrechten).Er verschijnt een waarschuwing bij het maken van een dergelijke taak:
This task requires that the user account specified has Log on as batch job rights


- In een AD-domein kunt u het GPO gebruiken om PowerShell-scripts uit te voeren wanneer een gebruiker zich aan- of afmeldt, of wanneer een computer opstart of afsluit. Dergelijke scripts staan bekend alsaanmeldingsscripts.












![[Firefox Fix] Alle bestaande add-ons zijn uitgeschakeld, kan geen nieuwe extensies installeren](https://media.askvg.com/articles/images5/Disable_Addon_Signature_Check_Firefox.png)