Come eseguire uno script PowerShell da un file batch

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

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:

eseguire uno script di powershell da un file batch - output 1

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:

eseguire uno script di powershell da un file batch - output 2

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:

eseguire uno script PowerShell da un file batch - output 3

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 di powershell da un file batch - output 4

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:

eseguire uno script PowerShell da un file batch - output 5

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.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Articolo correlato - PowerShell Script