Molti esperti IT usano i file PS1 di Windows per automatizzare le attività, configurare i sistemi o gestire i flussi di lavoro in Windows 10. Eseguirli, però, richiede un processo macchinoso: bisogna aprire PowerShell manualmente. Un buon metodo per semplificare tutto è aggiungere l’opzione “Esegui file PS1” al menu contestuale, così da poter avviare gli script direttamente da Esplora file e risparmiare tempo.
Questa modifica ti permette di eseguire facilmente la manutenzione del sistema, automazioni di massa o la risoluzione di problemi urgenti. Per esempio, gli specialisti di cybersecurity possono distribuire rapidamente le patch di sicurezza, mentre gli amministratori di sistema possono automatizzare il ripristino delle unità crittografate. In questa guida passo passo ti mostriamo un modo più rapido e intuitivo per usare questo strumento.
Come aggiungere “Esegui file PS1” al menu contestuale
Aggiungere l’opzione “Esegui file PS1” al menu contestuale di Windows ti consente di accedere agli script PowerShell in pochi secondi. Ecco due modi per farlo:
Metodo 1: usare l’Editor del Registro di sistema (metodo manuale)
- Apri la finestra di dialogo Esegui (Win + R), poi digita regedit per aprire l’Editor del Registro di sistema.
- Vai a: HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell.
- Fai clic con il pulsante destro sulla cartella Shell, seleziona Nuovo e poi Chiave.
- Assegna alla nuova chiave il nome Run with PowerShell.
- Crea al suo interno una sottochiave command.
- Imposta il valore della sottochiave su:
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -File “%1”
-
- In questo modo le policy di esecuzione vengono ignorate e gli script girano senza intoppi.
- Chiudi il Registro di sistema per applicare le modifiche.
- L’opzione Run with PowerShell comparirà facendo clic con il pulsante destro sui file .ps1.
Metodo 2: usare un file di registro già pronto (metodo più semplice)
- Apri il Blocco note, poi incolla questo codice:
- Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell]
"Icon"="powershell.exe"
[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell\command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -NoProfile -ExecutionPolicy Bypass -Command \"& '%1'\""
- Salva il file come Add_Run_PS1_Context_Menu.reg.
- Fai doppio clic sul file .reg salvato e conferma le modifiche.
- L’opzione Run with PowerShell comparirà facendo clic con il pulsante destro sui file .ps1.
Come modificare o rimuovere la voce “Esegui file PS1” dal menu contestuale
Se devi rimuovere o modificare questa caratteristica, intervenire sul menu contestuale è piuttosto semplice. Ecco come fare:
Modificare il comando “Run with PowerShell”
- Apri l’Editor del Registro di sistema (Win + R, poi digita regedit), quindi vai alla chiave creata in precedenza (vedi il Metodo 1 qui sopra).
- Fai doppio clic sul valore (Predefinito) per modificarlo:
- Per eseguire gli script con una policy di esecuzione specifica, sostituisci -ExecutionPolicy Bypass con -ExecutionPolicy RemoteSigned.
- Per eseguire gli script come amministratore, aggiungi -Verb RunAs al comando.
- Chiudi il Registro di sistema per applicare subito le modifiche.
Rimuovere la voce dal menu contestuale
- Apri l’Editor del Registro di sistema, poi vai a: HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell
- Fai clic con il pulsante destro su Run with PowerShell, poi seleziona Elimina.
- Riavvia Esplora file tramite Gestione attività per applicare le modifiche.
Metodi alternativi per eseguire gli script PowerShell
Aggiungere una voce al menu contestuale rende l’esecuzione degli script più comoda, ma altri metodi offrono maggiore flessibilità quando lavori su flussi di lavoro diversi. Ecco alcune alternative per eseguire PowerShell:
Usare PowerShell con privilegi di amministratore
Questo metodo è ideale per gli script che richiedono privilegi elevati e prevede di aprire PowerShell con privilegi di amministratore.
- Fai clic con il pulsante destro sul menu Start, poi seleziona Windows PowerShell (amministratore).
- Nella directory dello script, vai a: cd
"C:\Path\To\Script" - Esegui questo script: .\YourScript.ps1
- Se lo script viene bloccato dalle policy di esecuzione, usa invece: Set-ExecutionPolicy RemoteSigned -Scope Process -Force
Usare l’Utilità di pianificazione per eseguire gli script automaticamente
Questo strumento ti aiuta a pianificare negli script attività come backup, pulizia dei log o manutenzione notturna.
- Apri l’Utilità di pianificazione (cerca taskschd.msc), poi fai clic su Crea attività.
- Nella scheda Generale:
- Assegna un nome all’attività.
- Spunta Esegui con i privilegi più elevati.
- Nella scheda Attivazione, imposta una pianificazione per l’attività.
- Nella scheda Azioni:
- Imposta Azione su Avvio programma.
- In Programma o script, inserisci: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
- In Argomenti, aggiungi: -WindowStyle Hidden -ExecutionPolicy Bypass -File
"C:\Scripts\Backup.ps1"
Creare un collegamento sul desktop per lo script PS1
Questo metodo è indicato per gli script usati di frequente, perché offre un accesso rapido con un solo clic.
- Fai clic con il pulsante destro sul desktop, seleziona Nuovo e poi Collegamento.
- Come percorso di destinazione, inserisci:
powershell.exe -ExecutionPolicy Bypass -Command "& 'C:\Scripts\YourScript.ps1'"
- Assegna un nome al collegamento.
- Per farlo eseguire come amministratore:
- Fai clic con il pulsante destro sul collegamento, poi seleziona Proprietà.
- Vai su Avanzate, poi spunta Esegui come amministratore.
Risoluzione dei problemi più comuni
Anche configurando gli script PowerShell con attenzione, qualche intoppo può sempre capitare. Di seguito trovi le soluzioni ai problemi più frequenti.
Problema: lo script PowerShell non parte dopo averlo aggiunto al menu contestuale
- Avvia PowerShell (Win + R, poi digita powershell).
- Esegui lo script: Get-ExecutionPolicy
- Se lo script risulta Restricted, aggira temporaneamente la restrizione per i test con: powershell.exe -ExecutionPolicy Bypass -File “your_script.ps1”
- Verifica che il valore command della chiave di registro (in HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell) includa il percorso completo di powershell.exe e l’argomento -File “%1”.
- Crea uno script di base, come Write-Output “Hello World”, per escludere errori di sintassi nel file originale.
Problema: “L’esecuzione di script è disabilitata nel sistema in uso”
- Apri PowerShell come amministratore (vedi i metodi alternativi qui sopra).
- Esegui lo script: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
- In questo modo la policy di esecuzione viene modificata per consentire gli script.
Problema: l’opzione non compare nel menu contestuale
- Aggiorna Esplora file:
- Apri Gestione attività (Ctrl + Maiusc + Esc).
- Fai clic con il pulsante destro su Esplora file, poi seleziona Riavvia.
- Controlla le modifiche al registro:
- Verifica di nuovo il percorso della chiave: HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell.
- Se il percorso non c’è, riapplica il file .reg (vedi il Metodo 2).
- Controlla eventuali interferenze di antivirus o firewall:
- Apri il software di sicurezza.
- Disattiva temporaneamente il blocco delle modifiche al registro, poi aggiungi di nuovo la voce di menu.
Best practice per la gestione degli script PowerShell
Una gestione scorretta degli script PowerShell può esporre i sistemi a dei rischi. Segui queste best practice per ottimizzare efficienza e sicurezza di questo potente strumento:
Controlla sempre gli script prima di eseguirli
Gli script scritti male possono compromettere sistemi o dati. Puoi evitarlo così:
- Usa la firma del codice: firma gli script con un certificato attendibile per verificarne l’autenticità, come
Set-AuthenticodeSignature -FilePath "script.ps1" -Certificate$cert. - Sfrutta gli strumenti giusti: gli strumenti di gestione degli endpoint, come NinjaOne, facilitano la distribuzione degli script e ti avvisano quando si verificano determinate condizioni.
Usa le policy di esecuzione in modo strategico
Le policy di esecuzione possono impedire l’avvio accidentale degli script, ma ricorda che non sono una barriera di sicurezza completa.
- Usa i comandi RemoteSigned o AllSigned per bloccare gli script remoti non firmati.
- Limita l’ambito delle policy con -Scope CurrentUser, così le modifiche valgono solo per l’account.
- Ripristina le restrizioni dopo l’uso: Set-ExecutionPolicy Restricted -Scope Process
Organizza gli script in una cartella dedicata
Centralizza l’archiviazione degli script per ridurre il disordine e semplificare il sistema. Crea una cartella denominata C: \Scripts, poi aggiungila al $env: Path di PowerShell. Puoi anche aggiungere la cartella alla barra di Accesso rapido in Esplora file per raggiungerla con un solo clic.
Esegui il backup del registro prima delle modifiche
Anche le modifiche accidentali al registro possono destabilizzare il sistema. Creare file di backup del registro o di una parte del suo contenuto ti aiuta a ripristinare il sistema dopo un danneggiamento.
- Nell’Editor del Registro di sistema, fai clic con il pulsante destro su Run with PowerShell, poi seleziona Esporta.
Domande frequenti su come aggiungere “Esegui file PS1” al menu contestuale
Posso impostare PowerShell perché venga sempre eseguito come amministratore dal menu contestuale?
Sì, basta modificare il comando nel registro per includere il flag -Verb RunAs:
- Modifica la chiave di registro command (vedi la sezione 2).
- Aggiorna il comando con:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command “& ‘%1′”
È possibile aggiungere altre opzioni di PowerShell al menu del tasto destro?
- Certo, puoi aggiungere altre voci come Run as Admin o Edit Script. Ecco come fare:
- Duplica la chiave di registro Run with PowerShell in HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell.
- Rinominala e aggiorna il valore del comando con:
"C:\Path\To\Code.exe"“%1”
Come rimuovo l’opzione “Esegui file PS1” se non mi serve più?
- Segui i passaggi della sezione 2 qui sopra per rimuovere la chiave di registro.
Posso usare questo metodo anche in Windows 11?
- Sì. La struttura del registro e il sistema PowerShell sono identici in Windows 10 e 11.
Cosa succede se il mio script richiede l’input dell’utente quando viene eseguito dal menu contestuale?
- La finestra di PowerShell potrebbe chiudersi subito dopo l’esecuzione, interrompendo le richieste di input. Puoi risolvere così:
- Aggiungi -NoExit al comando nel registro: … -File “%1” -NoExit
- Per gli script che richiedono un’interazione prolungata, eseguili manualmente in PowerShell oppure usa Start-Sleep per mettere in pausa l’esecuzione.
Semplifica l’esecuzione dei file PS1 in Windows
Aggiungere la voce “Esegui file PS1” al menu contestuale di Windows 10 semplifica l’esecuzione degli script per la gestione del sistema, l’automazione o il ripristino delle unità crittografate. Integrando PowerShell direttamente in Esplora file, puoi eseguire gli script senza passaggi inutili.
Questa caratteristica fa crescere la produttività, ma affiancala sempre a policy di esecuzione sicure e al controllo degli script per evitare rischi imprevisti. Trovare il giusto equilibrio tra efficienza e prudenza mantiene PowerShell uno strumento potente e sicuro per il tuo sistema.
Guida rapida
Puoi creare uno script personalizzato nella NinjaOne Automation Library che:
- Aggiunga una chiave di registro per creare la voce nel menu contestuale
- Specifichi il comando per eseguire PowerShell con i parametri appropriati