Nästan alla systemadministratörer måste hantera schemalagda aktiviteter. De är otroligt användbara för att göra något baserat på olika utlösare, men de kräver mycket manuellt arbete för att konfigureras korrekt.
Fördelen med schemalagda uppgifter är att du kan bygga en sådan med en djup nivå av sofistikering med utlösaralternativ och olika säkerhetskontexter. Men när komplexiteten är stor kan konfigurationsfel uppstå. När du utvecklar dessa automationsskript kan du skapa en schemalagd aktivitet med PowerShell för att underlätta processen. Genom att använda PowerShell kan du standardisera hanterings- och konfigurationsarbetet med intrikata schemalagda aktiviteter, vilket har den extra fördelen att du undviker de vanliga felen som uppstår vid manuell inmatning.
Bygg en åtgärd för en schemalagd aktivitet
En schemalagd aktivitet har som ett minimum en åtgärd, en utlösare och en grupp av associerade inställningar. När du har skapat aktiviteten måste du också registrera den i systemet. Du måste utföra varje åtgärd separat för att skapa en enda schemalagd aktivitet.
För att skapa åtgärden använder du cmdlet New-ScheduledTaskAction som anger det kommando som ska köras. Låt oss skapa en åtgärd som blir lite meta och som anropar ett PowerShell-skript.
Kommandot nedan ger ett exempel på att anropa PowerShell-motorn och skicka ett skript till den med hjälp av alla lämpliga kommandoradsväxlar för att få skriptet att köras icke-interaktivt. Skriptfilen finns på den maskin som den schemalagda aktiviteten ska köras på.
$Action = New-ScheduledTaskAction -Execute 'pwsh.exe' -Argument '-NonInteractive -NoLogo -NoProfile -File "C:\MyScript.ps1"'
Skapa en utlösare
Nästan behöver du en utlösare. Du har flera värden tillgängliga, men den här uppgiften kommer att använda en specifik tid – klockan 3 på morgonen – för att köra det här skriptet en gång. En fullständig lista över alternativ finns på hjälpsidan för cmdlet New-ScheduledTaskTrigger.
$Trigger = New-ScheduledTaskTrigger -Once -At 3am
Skapa inställningar
Nästan skapar du den schemalagda uppgiften med kommandot New-ScheduledTask. Det här kommandot kräver ett värde för parametern Settings, även om du inte använder någon speciell. Därför kör du New-ScheduledTaskSettingsSet för att skapa ett objekt att skicka in här.
$Settings = New-ScheduledTaskSettingsSet
Skapa den schemalagda uppgiften
När du har tilldelat alla objekt som variabler skickar du var och en av dessa variabler till kommandot New-ScheduledTask för att skapa ett objekt för schemalagd uppgift.
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
Registrera den schemalagda uppgiften
I det här läget har du skapat ett objekt för schemalagd uppgift i minnet. Om du vill lägga till den schemalagda aktiviteten på datorn måste du registrera den schemalagda aktiviteten med cmdlet Register-ScheduledTask.
Exemplet nedan registrerar en schemalagd aktivitet som ska köras under ett visst användarnamn. Om du vill köra uppgiften under en viss användares kontext måste du ange lösenordet. Det är bra att titta på dokumentationen för kommandot Register-ScheduledTask för att se alla alternativ som du kan använda med den här cmdlet.
Register-ScheduledTask -TaskName 'My PowerShell Script' -InputObject $Task -User 'username' -Password 'passhere'
Om du följde alla steg på rätt sätt bör du kunna se den nyss skapade schemalagda aktiviteten i Schemaläggaren för aktiviteter.
När den schemalagda uppgiften är registrerad och visas i Task Scheduler kan du nu köra cmdlet Get-ScheduledTask för att se uppgiften.