Come eseguire uno script PowerShell senza visualizzare una finestra
-
Usa il parametro
-WindowStyle Hidden
di PowerShell per eseguire uno script PowerShell senza visualizzare una finestra - Usa l’Utilità di Pianificazione per eseguire uno script PowerShell senza visualizzare una finestra
- Usa Strumenti di Terze Parti per Eseguire uno Script PowerShell Senza Visualizzare una Finestra
- Conclusione

PowerShell di Microsoft è uno strumento che viene fornito di default con i sistemi operativi Windows, consentendo agli utenti di Windows di avere funzioni di automazione basate su interfacce e comandi della linea di comando.
PowerShell è uno strumento di scripting e uno strumento di automazione; pertanto, a volte richiede che l’applicazione venga eseguita in background in modo silenzioso. Attraverso questo articolo, vedremo come eseguire l’applicazione PowerShell silenziosamente in background, eseguendo comandi in background.
Ci sono strumenti di terze parti che puoi integrare con gli strumenti di PowerShell per ottenere la funzionalità nascosta di PowerShell. Tuttavia, ci sono modi semplici per farlo solo con PowerShell.
Usa il parametro -WindowStyle Hidden
di PowerShell per eseguire uno script PowerShell senza visualizzare una finestra
Un modo semplice per nascondere la finestra dello script sarebbe utilizzare il tipo hidden
come stile della finestra. Una finestra di PowerShell con stile finestra verrebbe mostrata brevemente all’inizio e poi nascosta durante l’esecuzione dello script.
Il parametro -WindowStyle
in PowerShell consente di controllare l’aspetto della finestra di PowerShell. Il parametro -WindowStyle Hidden
, se applicato, assicura che la finestra di PowerShell non venga visualizzata durante l’esecuzione dello script.
Questo è particolarmente utile per compiti che richiedono automazione senza interazione dell’utente o quando non vuoi interrompere il flusso di lavoro dell’utente.
Eseguire uno script PowerShell con il parametro -WindowStyle Hidden
è semplice. Apri una finestra di PowerShell e usa il seguente comando:
PowerShell.exe -WindowStyle Hidden { Script you want to execute.. }
Ecco cosa fa ogni parte del comando:
PowerShell.exe
: Inizia un nuovo processo PowerShell.-WindowStyle Hidden
: Imposta lo stile della finestra su nascosto, impedendo la visualizzazione della finestra di PowerShell.- Lo script che desideri eseguire è racchiuso tra parentesi graffe
{}
.
L’esecuzione di PowerShell del comando sopra è mostrata nella seguente immagine.
Una volta inserito, la finestra scompare, tuttavia l’applicazione continuerà a funzionare in background. Come mostrato nell’immagine sottostante dei processi in background, PowerShell viene eseguito come processo in background.
In questo metodo, l’utente vedrebbe inizialmente PowerShell. Quindi, non è veramente nascosto dagli utenti finali. Anche se il compito è programmato in precedenza, la finestra apparirebbe e verrebbe nascosta rapidamente.
Usa un file batch
Se stai gestendo uno script più complesso o prevedi di eseguirlo più volte, questo metodo (file batch con comando PowerShell) potrebbe essere più organizzato ed efficiente.
Crea un file batch (ad esempio, run_script.bat
) con il seguente contenuto:
@echo off
powershell -WindowStyle Hidden -File "C:\path\to\script.ps1"
@echo off
: Questo comando impedisce al file batch di visualizzare i suoi comandi nella finestra della console.powershell -WindowStyle Hidden -File "C:\path\to\script.ps1"
: Questa riga chiama PowerShell con i parametri necessari e il percorso dello script.
Entrambi i codici sopra raggiungono lo stesso obiettivo di eseguire uno script PowerShell senza visualizzare una finestra, ma utilizzano approcci leggermente diversi. Tuttavia, ci sono altri modi semplici per ottenere la vera funzionalità nascosta di PowerShell.
Usa l’Utilità di Pianificazione per eseguire uno script PowerShell senza visualizzare una finestra
L’Utilità di Pianificazione è un’utilità di Windows che consente di automatizzare attività a orari o eventi specifici. Fornisce una vasta gamma di opzioni per la personalizzazione, rendendola uno strumento versatile per gestire varie attività sul computer.
Creare un Nuovo Compito
- Apri l’Utilità di Pianificazione: Puoi farlo cercando
"Utilità di Pianificazione"
nel menu Start di Windows. - Naviga su
"Azioni"
: Clicca su"Crea Compito"
nel pannello di destra.
Configurazione del Compito
- Nomina il Compito: Fornisci un nome e una descrizione per il tuo compito. Questo dovrebbe essere qualcosa di descrittivo che rifletta ciò che fa il compito.
- Scegli il Trigger del Compito: Seleziona come vuoi attivare il compito. Le opzioni includono giornaliero, settimanale, mensile, all’accesso, ecc. Scegli il trigger che meglio si adatta alle tue esigenze.
Impostazione dei Trigger
- Seleziona i Dettagli del Trigger: A seconda del trigger che scegli, dovrai fornire dettagli aggiuntivi. Ad esempio, se scegli
"Giornaliero"
, specificherai l’ora e la frequenza. - Impostazioni Avanzate: Puoi impostare opzioni più avanzate cliccando su
"Impostazioni avanzate"
. Questo ti consente di personalizzare ulteriormente quando e con quale frequenza il compito viene eseguito.
Specificare le Azioni
- Seleziona l’Azione: Nella fase
"Azioni"
, scegli"Nuovo"
>"Avvia un programma"
poiché eseguiremo uno script PowerShell. - Programma/script: Sfoglia e seleziona
powershell.exe
nel tuo sistema. - Aggiungi argomenti (opzionale): Inserisci quanto segue:
-WindowStyle Hidden -File "C:\path\to\script.ps1"
Sostituisci "C:\path\to\your\script.ps1"
con il percorso effettivo del tuo script PowerShell.
Abilitare le Opzioni di Sicurezza
Spunta la casella che dice "Esegui con i privilegi più elevati"
. Questo assicura che lo script verrà eseguito con privilegi di amministratore se necessario.
Puoi anche cliccare su Esegui anche se l'utente non è connesso
, e non verrà mai mostrata la finestra di PowerShell quando il compito viene eseguito.
Completare e Testare il Compito
Rivedi il riepilogo del compito e clicca su "OK"
per crearlo.
Puoi testare il compito facendo clic destro su di esso nell’Utilità di Pianificazione e selezionando "Esegui"
. Questo eseguirà immediatamente il compito secondo i trigger che hai impostato.
L’Utilità di Pianificazione consente di automatizzare compiti a intervalli o eventi specificati. Utilizzandola per attivare PowerShell con gli argomenti appropriati, puoi eseguire script in modo silenzioso.
Tuttavia, questo metodo influirebbe sulla funzionalità di alcuni script che provi a utilizzare. Pertanto, puoi anche utilizzare strumenti di terze parti o estensioni della comunità per PowerShell.
Usa Strumenti di Terze Parti per Eseguire uno Script PowerShell Senza Visualizzare una Finestra
Gli strumenti di terze parti estendono le capacità di PowerShell fornendo funzionalità e caratteristiche aggiuntive. Quando si tratta di eseguire script PowerShell senza visualizzare una finestra, questi strumenti giocano un ruolo cruciale nell’automazione delle attività senza soluzione di continuità.
Usa PSExec
PSExec
è uno strumento versatile di Sysinternals
(ora parte di Microsoft) che consente di eseguire processi da remoto. Può essere utilizzato per eseguire script PowerShell silenziosamente.
psexec -d -s powershell -WindowStyle Hidden -File "C:\path\to\script.ps1"
psexec
: IniziaPSExec
.-d
: InformaPSExec
di non attendere che il comando venga completato.-s
: Esegue il comando con permessi di sistema.powershell -WindowStyle Hidden -File "C:\path\to\script.ps1"
: Esegue lo script PowerShell silenziosamente.
Usa NSSM (Non-Sucking Service Manager)
NSSM
è un gestore di servizi per Windows che ti consente di eseguire qualsiasi applicazione come servizio. Questo può essere particolarmente utile per eseguire script silenziosamente in background.
- Scarica e installa NSSM dal sito ufficiale.
- Apri un prompt dei comandi con privilegi di amministratore.
- Esegui il seguente comando per creare un nuovo servizio:
nssm install <ServiceName> "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-NoLogo -NonInteractive -ExecutionPolicy Bypass -File C:\path\to\script.ps1"
nssm install <ServiceName>
: Installa un nuovo servizio con il nome specificato."C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
: Specifica il percorso dell’eseguibile di PowerShell."-NoLogo -NonInteractive -ExecutionPolicy Bypass -File C:\path\to\script.ps1"
: Passa parametri a PowerShell, istrudendolo ad eseguire lo script silenziosamente.
Conclusione
PowerShell è uno strumento potente per l’automazione per gli utenti di Windows, fornendo ampie capacità dalla linea di comando. In scenari in cui è necessaria l’esecuzione silenziosa in background, sono disponibili diversi metodi.
- Utilizzare il parametro
-WindowStyle Hidden
: Ciò consente una breve visibilità della finestra di PowerShell prima di nasconderla durante l’esecuzione dello script. È adatto per compiti che richiedono automazione senza interazione dell’utente. - File Batch: Organizzati per eseguire script complessi o ripetuti. I file batch chiamano PowerShell con i parametri necessari.
- Utilità di Pianificazione: Offre automazione a orari o eventi specifici. Configurandola per eseguire PowerShell con i parametri giusti, gli script possono essere eseguiti silenziosamente.
- Strumenti di terze parti (ad es.,
PSExec
,NSSM
): Estendono le capacità di PowerShell, consentendo l’esecuzione di script senza finestra.
Scegli il metodo che meglio si adatta alle tue esigenze specifiche e al tuo flusso di lavoro.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.