Come eseguire uno script PowerShell da un file batch
-
Usa il parametro
-File
per eseguire uno script PowerShell da un file batch -
Usa
RemoteSigned
come-ExecutionPolicy
per eseguire uno script PowerShell da un file batch -
Usa l’opzione
Bypass
per eseguire uno script PowerShell da un file batch - Eseguire uno script PowerShell da un file batch aprendo PowerShell come amministratore
- Conclusione

Uno script PowerShell è un file di testo con estensione .ps1
che contiene una raccolta di comandi. PowerShell esegue questi comandi in sequenza.
Un file batch è un file di testo con estensione .bat
. Contiene anche una raccolta di comandi che vengono eseguiti in sequenza.
I comandi possono essere eseguiti aprendo il file .bat
. Questo tutorial ti insegnerà a eseguire uno script PowerShell da un file batch.
Abbiamo creato uno script PowerShell, myscript.ps1
, contenente il seguente comando. Il comando pause
interrompe l’esecuzione di un file batch fino a quando non premi il tasto Enter.
Write-Host "Your script is executed successfully."
Pause
Usa il parametro -File
per eseguire uno script PowerShell da un file batch
Eseguire uno script PowerShell da un file batch può essere una tecnica utile per automatizzare compiti negli ambienti Windows. Il metodo del parametro -File
consente un’integrazione senza soluzione di continuità degli script PowerShell nei flussi di lavoro dei file batch.
Il seguente comando è utilizzato nel file bat
per eseguire uno script PowerShell.
@echo off
powershell -File script.ps1
In questo frammento di codice, utilizziamo prima @echo off
per sopprimere la visualizzazione dei comandi eseguiti, assicurando che solo l’output dello script sia visibile all’utente. Poi, utilizziamo il comando powershell
con il parametro -File
per eseguire uno script PowerShell chiamato script.ps1
.
Questo comando avvia una sessione PowerShell e specifica il file dello script da eseguire. Combinando questi comandi, possiamo eseguire uno script PowerShell da un file batch, semplificando il processo di esecuzione dei comandi PowerShell all’interno di un ambiente di file batch.
Output:
Usa RemoteSigned
come -ExecutionPolicy
per eseguire uno script PowerShell da un file batch
PowerShell ha diverse politiche di esecuzione che determinano quali script possono essere eseguiti e da dove. Un modo per aggirare queste restrizioni è specificare il parametro -ExecutionPolicy
con un valore di RemoteSigned
.
Questa politica di esecuzione consente di eseguire script creati localmente senza richiedere una firma digitale, mentre gli script scaricati da Internet devono essere firmati da un editore fidato.
@echo off
powershell -ExecutionPolicy RemoteSigned -File script.ps1
Nel frammento di codice fornito, powershell -ExecutionPolicy RemoteSigned -File script.ps1
è utilizzato per eseguire lo script PowerShell denominato script.ps1
situato nella directory di lavoro corrente. Specificando il parametro -ExecutionPolicy
come RemoteSigned
, ci assicuriamo che gli script creati localmente possano essere eseguiti senza una firma digitale, mentre gli script scaricati da Internet devono essere firmati da un editore fidato.
Output:
Usa l’opzione Bypass
per eseguire uno script PowerShell da un file batch
Per aggirare le restrizioni e consentire l’esecuzione dello script senza alcuna limitazione imposta dalla politica di esecuzione, possiamo utilizzare il parametro -ExecutionPolicy
con il valore Bypass
. Questo metodo fornisce un modo semplice per eseguire script PowerShell da un file batch aggirando eventuali restrizioni della politica di esecuzione.
@echo off
powershell -ExecutionPolicy Bypass -File C:\path\script.ps1
Nel frammento di codice fornito, powershell -ExecutionPolicy Bypass -File C:\path\script.ps1
è utilizzato per eseguire lo script PowerShell denominato script.ps1
situato nella directory C:\path\scripts
. Impostando la politica di esecuzione su Bypass
, istruiamo PowerShell a ignorare eventuali restrizioni della politica di esecuzione, consentendo così allo script di essere eseguito senza ostacoli.
Output:
Puoi anche eseguire il seguente comando.
@echo off
powershell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\path\script.ps1'"
In questo comando fornito, utilizziamo -ExecutionPolicy Bypass
per istruire PowerShell a ignorare eventuali restrizioni della politica di esecuzione, consentendo così l’esecuzione dello script senza limitazioni. Inoltre, il parametro -NoProfile
garantisce che il profilo PowerShell dell’utente non venga caricato, il che aiuta a mantenere un ambiente di esecuzione pulito per lo script.
Output:
Eseguire uno script PowerShell da un file batch aprendo PowerShell come amministratore
Eseguire uno script PowerShell da un file batch con privilegi elevati aprendo PowerShell come amministratore è un metodo cruciale per eseguire script che richiedono accesso amministrativo. Questo approccio garantisce che la sessione PowerShell abbia i permessi necessari per eseguire compiti amministrativi, come modificare impostazioni di sistema o accedere a risorse riservate.
@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell.exe -Verb RunAs -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1'"
In questo frammento di codice, utilizziamo powershell.exe
per avviare una sessione PowerShell con privilegi elevati. Il parametro -Verb RunAs
nel cmdlet Start-Process
garantisce che PowerShell venga aperto con privilegi amministrativi.
Passando gli argomenti necessari (-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1
) alla nuova sessione PowerShell, abilitiamo l’esecuzione dello script specificato (script.ps1
) con permessi elevati.
Output:
Conclusione
In questo articolo, abbiamo esplorato vari metodi per eseguire uno script PowerShell da un file batch. Abbiamo imparato come utilizzare il parametro -File
per eseguire uno script direttamente, così come come aggirare le restrizioni della politica di esecuzione utilizzando i parametri RemoteSigned
e Bypass
.
Inoltre, abbiamo discusso su come aprire PowerShell come amministratore per eseguire script con privilegi elevati. Ogni metodo offre un approccio unico per eseguire script PowerShell da file batch, fornendo flessibilità e controllo sull’ambiente di esecuzione.