Lo script PowerShell riduce l’esecuzione manuale di compiti ripetitivi. Se eseguite frequentemente gli script a orari predefiniti o intervalli di tempo specificati, potreste essere stanchi di eseguire gli script ripetutamente. Allora, è possibile utilizzare il Task Scheduler di Windows per automatizzare l’esecuzione degli script. Risparmierete tempo e fatica nell’esecuzione di script su base giornaliera/settimanale. Vediamo come pianificare lo script PowerShell attraverso Task Scheduler.
Può essere fatto in due modi.
1.Pianificare lo script PowerShell usando la GUI di Task Scheduler
2.Programmare lo script PowerShell da Task Scheduler usando PowerShell
- Metodo 1: Programmare lo script PowerShell usando Task Scheduler
- Automatizza lo script PowerShell da Task Scheduler con parametri
- Metodo 2: Pianifica lo script PowerShell da Task Scheduler usando PowerShell
- Definire il tempo per lo scheduler:
- Set Actions to be Performed During Execution:
- Save Scheduler:
- Casi d’uso:
Metodo 1: Programmare lo script PowerShell usando Task Scheduler
Aprire Task Scheduler (può essere trovato negli “strumenti amministrativi” o premendo “Windows+R” per aprire l’esecuzione e poi digitare “taskschd.msc”.)
Per eseguire uno script da Task Scheduler, segui questi passi.
1.Apri Task scheduler -> Task Scheduler Library -> Create Task
2.Nella scheda General, puoi impostare il nome dello scheduler e la descrizione del task come per quale scopo il task è stato creato.
Le opzioni di sicurezza disponibili sono spiegate di seguito.
- Specifica l’utente per conto del quale il compito sarà eseguito.
- Puoi specificare che un compito dovrebbe essere eseguito. Si può fare selezionando un pulsante di opzione etichettato ‘Run Whether the user is logged on not’. Se questo pulsante di opzione è selezionato, il task non verrà eseguito in modo interattivo. Per fare in modo che un’attività venga eseguita in modo interattivo, seleziona il pulsante di opzione ‘Esegui solo quando l’utente è connesso’.
- Quando è selezionato ‘Esegui se l’utente è connesso o no’, ti può essere richiesto di fornire le credenziali dell’account, indipendentemente dal fatto che tu abbia selezionato la casella di controllo ‘Non memorizzare la password’ o meno. Se l’account non è connesso durante l’esecuzione dell’attività, verranno utilizzate le credenziali salvate.
- Se l’attività richiede privilegi elevati, seleziona l’opzione ‘Esegui con i privilegi più alti’.
3.Passa alla scheda Innesco e clicca sul pulsante Nuovo. Qui, puoi impostare le condizioni che attivano un’attività.
- Puoi specificare quando avviare l’attività. Per esempio, puoi farlo eseguire in base a una pianificazione, all’avvio, all’accesso o ogni volta che si verifica un evento particolare selezionando il menu a discesa ‘Inizia l’attività’.
- Puoi configurare se vuoi eseguire questa attività una volta o quotidianamente o settimanalmente o mensilmente secondo il tuo scenario.
- Nelle “Impostazioni avanzate”, puoi scegliere di ritardare l’attività, ripetere l’attività, fermare l’attività se viene eseguita più a lungo del periodo di tempo specificato e della data di scadenza.
- Ritarda l’attività fino a – Questo aggiunge un ritardo casuale, così l’attività non verrà eseguita all’ora esatta del giorno.
- Ripeti l’attività ogni – Mostra il numero di volte che un’attività dovrebbe essere eseguita dopo che un trigger è stato sparato.
- Ripeti compito ogni – Intervallo di tempo tra ogni ripetizione del compito
- Per una durata di- Per quanto tempo un compito dovrebbe continuare a ripetersi
- Ferma il compito se viene eseguito più a lungo di- Se il compito viene eseguito più a lungo del tempo previsto o non esce mai, il compito si ferma automaticamente se raggiunge il limite di tempo menzionato.
- Scadenza — Dopo il periodo di tempo specificato, la pianificazione non verrà attivata.
4.Poi apri la scheda successiva ‘Azioni’ e clicca sul pulsante ‘Nuovo’.
- Nel menu a discesa Azione, “Avvia un programma†è impostato di default. Puoi cambiarlo se necessario.
- Utilizzando Sfoglia, seleziona il campo programma/script. Per programmare uno script, dobbiamo selezionare powershell.exe.
Puoi trovare powershell.exe nella tua cartella system32\WindowsPowerShell\v1.0.
- In ‘Aggiungi argomenti’, il parametro -File è quello predefinito quindi specifica semplicemente il percorso dello script. Per esempio, sto per programmare uno script che esporta il rapporto di stato MFA degli utenti di Office 365.
PowerShell
1
|
c:\GetMFAStatus.ps1
|
Se il percorso contiene uno spazio vuoto, deve essere racchiuso tra virgolette.
5.Una volta configurato, puoi specificare le condizioni per determinare se il task deve essere eseguito. Il compito non verrà eseguito se qualsiasi condizione specificata qui non è vera.
6.Nella scheda Impostazioni, è possibile impostare ulteriori impostazioni avanzate per controllare l’esecuzione del compito.
Finalmente, fare clic su Ok per creare uno script pianificato.
Lo script pianificato verrà eseguito come previsto secondo la pianificazione senza alcun problema. Se vuoi controllare l’esecuzione dello script, puoi fare clic su Esegui facendo clic con il pulsante destro del mouse sul nome dell’attività.
Automatizza lo script PowerShell da Task Scheduler con parametri
Se vuoi pianificare lo script PowerShell con parametri, usa il formato seguente.
PowerShell
1
|
Percorso script -Param 1 Valore1 -Param2 “Valore 2â€
|
Per esempio, Sto per automatizzare uno dei nostri script PowerShell: Export Office 365 Users MFA status report
Durante la pianificazione, è possibile passare esplicitamente le credenziali come parametri come mostrato di seguito:
PowerShell
1
|
C:\GetMFAStatus.ps1 -UserName “XXX XX” -Password ****
|
Se il valore del parametro ha spazio vuoto, i valori devono essere racchiusi tra virgolette.
Se vuoi passare un parametro switch, puoi usare la seguente sintassi.
PowerShell
1
|
C:\GetMFAStatus.ps1 -EnabledOnly
|
Lo script qui sopra esporta lo stato MFA degli utenti Office 365 il cui stato MFA è abilitato. Qui -EnabledOnly è un parametro switch.
Per altri script PowerShell relativi a Office 365, puoi fare riferimento al blog O365Reports.com.
Metodo 2: Pianifica lo script PowerShell da Task Scheduler usando PowerShell
Invece di GUI, puoi usare cmdlets PowerShell per creare attività di pianificazione che automatizzano lo script PowerShell. Comporta i seguenti passi,
1.Definire il tempo per lo scheduler
2.Impostare le azioni da eseguire durante l’esecuzione
3.Salvare lo scheduler
Definire il tempo per lo scheduler:
New-SchdeuledTaskTrigger crea un oggetto di trigger di attività pianificata. Utilizzando questo cmdlet, è possibile specificare l’ora di inizio di un’attività o avviare un’attività più volte su base giornaliera o settimanale.
PowerShell
1
|
$Time=Nuovo-ScheduledTaskTrigger -At 4.00PM -Once
|
Il suddetto cmd crea un trigger di attività pianificata che inizia alle 4PM e viene eseguito una volta.
PowerShell
1
|
 $Time=Nuovo-ScheduledTaskTrigger -At 4.00PM -Daily -DaysInterval 2
|
Questo cmd crea un trigger di attività pianificata che inizia ogni 2 giorni alle 4PM
Set Actions to be Performed During Execution:
New-SchdeuledTaskAction rappresenta azioni che vengono eseguite quando Task Scheduler esegue l’attività. Un’attività può avere una singola azione o un massimo di 32 azioni. Quando si specificano più azioni, Task Scheduler esegue un’attività in modo sequenziale. Â
Questo comando apre una PowerShell e cambia la directory in C:/Scripts e poi invoca lo script MFAStatus.ps1.
Save Scheduler:
Register-ScheduledTask salva l’attività pianificata su un computer locale.
PowerShell
1
|
Register-ScheduledTask -TaskName “Schedule MFA Status Report” -Trigger $Time -Action $Action -RunLevel Highest
|
Il comando qui sopra salva un’attività pianificata con il nome “Schedule MFA Status Report” nella cartella principale. L’attività salvata utilizza i valori di azione e trigger pre-creati che sono specificati dalle variabili $Action e $Time.
Casi d’uso:
Utilizzando Task Scheduler, è possibile pianificare uno script PowerShell da eseguire periodicamente. In modo da non dover eseguire manualmente uno script su base giornaliera/settimanale/mensile. Ci sono più script disponibili su internet che sono scheduler friendly (le credenziali possono essere passate come parametro invece di salvare all’interno dello script). Ho dato alcuni esempi qui.
- Traccia la cronologia di accesso degli utenti di Office 365 – Mantieni il registro di controllo per più di 90 giorni
- Rapporto periodico dello stato MFA degli utenti di Office 365
- Programma il rapporto sull’ora dell’ultimo accesso degli utenti di Office 365
- Programma il rapporto sulle autorizzazioni delle caselle postali di Office 365
- Programma il rapporto sulle licenze degli utenti di Office 365
- Schedule Report PowerShell sull’appartenenza al gruppo di distribuzione
- Schedule Dynamic Distribution Group Membership PowerShell script
- Rapporto periodico sull’ultima attività degli utenti Office 365
- Schedule Report PowerShell sulla cronologia di login degli utenti Office 365
- Esporta periodicamente il report sui permessi delle caselle di posta condivise
- Schedule non-proprietario della casella di posta elettronica
- Rapporto sulla scadenza della password degli utenti di Office 365
In questo blog, abbiamo visto come automatizzare uno script PowerShell utilizzando Task Scheduler.Qual è il tuo approccio preferito quando si tratta di programmazione – GUI o PowerShell? Fatecelo sapere nella sezione commenti.