PowerShell fornisce opzioni avanzate per controllare e gestire tutti i processi sul tuo sistema. Quindi, se desideri automatizzare qualsiasi processo o un gruppo di essi, PowerShell è la strada da percorrere.
A differenza dei prompt dei comandi, PowerShell utilizza i cmdlet. Questi cmdlet non sono eseguibili autonomi ma elaborano gli input da una pipeline e forniscono l’output a un’altra per lo stesso oggetto. Pertanto, è possibile utilizzare un numero di cmdlet per lo stesso oggetto e farli eseguire come singola attività. Questa proprietà rende estremamente efficace l’automazione degli script di PowerShell.
Se vuoi sapere come automatizzare gli script di PowerShell, questo articolo dovrebbe fornirti tutte le informazioni necessarie.
Come automatizzare gli script di PowerShell?
A seconda del tuo sistema, potresti non essere in grado di eseguire gli script di PowerShell sul tuo computer. Questo perché PowerShell include un’impostazione chiamata criterio di esecuzione per proteggere il tuo computer imponendo un particolare livello di restrizione su tali script. E la maggior parte dei sistemi ha questa impostazione abilitata per impostazione predefinita.
Quindi, prima di automatizzare gli script, è necessario rimuovere o ridurre la restrizione. Innanzitutto, apri PowerShell come amministratore e inserisci il seguente comando:
Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy RemoteSigned
Se devi eseguire script non firmati da Internet o da fonti esterne, devi utilizzare il seguente comando:
Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy Unrestricted
Quindi, utilizza uno dei metodi seguenti per automatizzare gli script di PowerShell su Windows:
Utilizzo dell’Utilità di pianificazione
Il Lo strumento grafico dell’Utilità di pianificazione fornisce un modo semplice per automatizzare gli script di PowerShell. È l’opzione migliore se desideri pianificare uno script che hai scaricato o ottenuto da una fonte esterna e non hai molte idee su come utilizzare PowerShell.
Apri Esegui. Digita taskschd.msc e premi Invio per aprire l’Utilità di pianificazione. Fai clic con il pulsante destro del mouse su Libreria Utilità di pianificazione e seleziona Crea attività. Nella scheda Generale, dai il nome e la descrizione che desideri per l’attività per automatizzare gli script. Scegli tra Esegui solo quando l’utente è connesso ed Esegui se l’utente è connesso o meno, a seconda delle tue necessità.
Se desideri utilizzare un altro account utente per eseguire l’attività, fai clic su Cambia utente o gruppo > Avanzate > Trova ora. Seleziona il tuo account dall’elenco e fai clic su OK > OK.
Imposta altre opzioni, ad esempio se desideri i privilegi di amministratore, se rendere l’attività nascosta o configurarla per un’altra versione del sistema operativo. Ora vai alla scheda Attivatori e fai clic su Nuovo.
Seleziona la pianificazione o l’istanza in cui desideri eseguire lo script dalla casella a discesa accanto a Inizia l’attività. Se hai scelto In programma, devi impostare la frequenza e la data di inizio. In caso contrario, per la maggior parte delle opzioni, è necessario specificare l’utente. Quindi, imposta le impostazioni avanzate se lo desideri. Assicurati di selezionare Abilitato se lo fai. Fai clic su OK.
Puoi sempre modifica l’attivatore facendo clic su di esso e selezionando Modifica. Puoi anche aggiungere un altro trigger per l’attività. Ora vai alla scheda Azioni e seleziona Nuovo. Digita powershell o powershell.exe nella casella di testo Programma/script. Digita-File”percorso completo dello script”accanto a Aggiungi argomenti. Ad esempio,-File”D:\New\script.ps1″
Premi OK. Vai alle schede Condizioni e Impostazioni e specifica le opzioni lì. Fai clic su OK per creare l’attività.
Utilizzo di PowerShell
Se hai familiarità con l’utilizzo di PowerShell per lo scripting, il metodo più semplice per automatizzare qualsiasi script è creare effettivamente un’attività pianificata tramite PowerShell stesso.
In primo luogo, noi discutere i cmdlet necessari per creare tali pianificazioni. Se sai già cosa sono, puoi saltare ai passaggi principali. Altrimenti, dovrai esaminarli per capire come eseguire il processo.
New-ScheduledTaskTrigger
Crea un oggetto trigger per specificare quando per programmare l’attività. È necessario assegnare questo cmdlet a una variabile per creare un oggetto trigger.
È possibile utilizzare i seguenti attributi con questo cmdlet per attivare un’attività a intervalli regolari:
-At: specifica l’ora in cui si desidera eseguire l’attività-Once: avvia l’attività una volta Ad esempio, $trigger=New-ScheduledTaskTrigger-Once-At 4am-Daily: avvia l’attività con daily. Puoi anche utilizzare-DaysInterval # insieme a-Daily per eseguire l’attività una volta ogni # giorni. Ad esempio, $trigger=New-ScheduledTaskTrigger-Daily-DaysInterval 5-At 4am crea un trigger per eseguire un’attività una volta ogni 5 giorni.
-Settimanale: avvia la settimana dell’attività. Puoi anche utilizzare-WeeksInterval # insieme a-Weekly per eseguire un’attività una volta ogni # settimane.
Se desideri eseguire l’attività all’avvio, devi utilizzare l’attributo-AtStartup. Analogamente, è necessario utilizzare-AtLogon per eseguire attività all’accesso dell’utente. Puoi utilizzare l’attributo-User per specificare l’account utente esatto.
New-ScheduledTaskAction
Specifica quale applicazione desideri eseguire. Devi anche creare un oggetto azione attività assegnandolo a un altro valore se desideri registrare l’attività sul tuo computer.
Gli attributi principali che puoi utilizzare sono:
-Execute: specifica il file eseguibile che devi automatizzare; in questo caso, powershell.exe-Argument: specifica il file while da aprire con il file eseguibile precedente. È meglio inserire il percorso completo dello script, altrimenti PowerShell lo cerca nella directory di lavoro. Ad esempio, $action=New-ScheduledTaskAction-Execute “powershell.exe”-Argument “D:\New\script.ps1″-WorkingDirectory: descrivi la directory di lavoro in cui il tuo sistema esegue l’attività. Quello predefinito è %WinDir%\System32
Register-ScheduledTask
Registra l’attività sul tuo computer locale. È necessario utilizzare gli oggetti creati utilizzando i cmdlet precedenti negli argomenti di questo cmdlet per automatizzare gli script di PowerShell. Gli attributi necessari sono:
-TaskName: qualsiasi nome desiderato per l’attività.-Trigger: qui si collega l’oggetto trigger creato utilizzando New-ScheduledTaskTrigger-User: specificare l’account utente a cui si applica l’attività. È inoltre possibile specificare un computer se si desidera automatizzare gli script per un computer collegato in rete.-Action: qui si allega l’oggetto attività creato dal cmdlet New-ScheduledTaskAction.
Ad esempio, Register-ScheduledTask-TaskName”PowerShell Script”-Trigger $Trigger-User $User-Action $Action
Esistono molti cmdlet aggiuntivi che puoi utilizzare per questo scopo, nonché attributi che puoi utilizzare con essi. Poiché sono facoltativi e non pertinenti nella maggior parte dei casi, non li abbiamo inclusi qui. Ma puoi comunque visitare la loro documentazione sulla piattaforma Microsoft se vuoi saperne di più su di loro.
Infine, ecco come puoi utilizzare questi cmdlet per automatizzare gli script di PowerShell:
Apri Esegui premendo Win + R. Digita powershell e premi Invio per apri Windows PowerShell. Se desideri utilizzare PowerShell core (versioni 6.x, 7.x), devi utilizzare il comando Esegui pwsh. Crea un oggetto trigger utilizzando il cmdlet New-ScheduledTaskTrigger. Quindi, creare un oggetto attività per eseguire uno script di PowerShell. Infine, registra l’attività pianificata. Ad esempio, puoi inserire i seguenti cmdlet in PowerShell: $Trigger=New-ScheduledTaskTrigger-Once-At 10am $Action=New-ScheduledTaskAction-Execute “powershell.exe”-Argument “D:\New\script.ps1″$User=”DESKTOP\Utente”Register-ScheduledTask-TaskName”PowerShell Script”-Trigger $Trigger-User $User-Action $Action