it-swarm-eu.dev

Come eseguire uno script PowerShell

Come posso eseguire uno script PowerShell?

  • Ho uno script chiamato myscript.ps1
  • Ho installato tutti i framework necessari
  • Ho impostato quella politica di esecuzione cosa
  • Ho seguito le istruzioni su questa pagina di aiuto MSDN e sto provando ad eseguirla in questo modo: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1' (con o senza --noexit)

che restituisce esattamente nulla, tranne che il nome del file viene emesso.

Nessun errore, nessun messaggio, niente. Oh, quando aggiungo -noexit, succede la stessa cosa, ma rimango all'interno di PowerShell e devo uscire manualmente.

Il file .ps1 dovrebbe eseguire un programma e restituire il livello di errore in base all'output del programma. Ma sono abbastanza sicuro che non ci sto ancora arrivando.

Che cosa sto facendo di sbagliato?

624
Pekka 웃
  1. Avvia Windows PowerShell e aspetta un attimo che compaia il comando PS Prompt
  2. Passa alla directory in cui risiede lo script

    PS> cd C:\my_path\yada_yada\ (enter)
    
  3. Esegui lo script:

    PS> .\run_import_script.ps1 (enter)
    

Cosa mi manca ??

Oppure: puoi eseguire lo script PowerShell da cmd.exe in questo modo:

powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)

secondo questo post di blog qui

Oppure potresti persino eseguire il tuo script PowerShell dalla tua app C # :-)

Esegui in modo asincrono gli script di PowerShell dall'applicazione C #

660
marc_s

Se si utilizza PowerShell 2.0, utilizzare il parametro -File di PowerShell.exe per richiamare uno script da un altro ambiente come cmd.exe ad esempio:

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
195
Keith Hill

Se si desidera eseguire uno script senza modificare il criterio di esecuzione dello script predefinito, è possibile utilizzare l'opzione bypass all'avvio Windows PowerShell .

powershell [-noexit] -executionpolicy bypass -File <Filename>
164
Chingiz Musayev

Genere:

powershell -executionpolicy bypass -File .\Test.ps1

NOTA: qui Test.ps1 è lo script di PowerShell.

61
Sudheesh

Ho avuto lo stesso problema, e ho provato e provato ... Finalmente ho usato:

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

E metti questa riga in un file batch e questo funziona.

27
Dennis

Se hai solo PowerShell 1.0 , questo sembra fare abbastanza bene il trucco:

powershell -command - < c:\mypath\myscript.ps1

Conduce il file di script alla riga di comando di PowerShell.

21
AndyM

Molto facile. Fare clic con il pulsante destro del mouse sul file .ps1 in Windows e nel menu Shell fare clic su Esegui con PowerShell .

11
electronictonic

Usando il file cmd (BAT):

@echo off
color 1F
echo.

C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"

:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL

Se è necessario eseguire come amministratore :

  1. Crea una scorciatoia puntata sul comando Prompt (l'ho chiamato prompt dei comandi di amministrazione)
  2. Apri le proprietà del collegamento e vai alla scheda Compatibilità
  3. Sotto la sezione Livello privilegio, assicurati che la casella accanto a "Esegui questo programma come amministratore" sia selezionata
10
Kiquenet

Un modo semplice è usare PowerShell ISE , aprire lo script, eseguire e invocare il tuo script, funzione ...

Enter image description here

  • Dare il percorso dello script, cioè l'impostazione del percorso per cmd:

    $> . c:\program file\prog.ps1

  • Eseguire la funzione del punto di ingresso di PowerShell:

    Ad esempio, $> add or entry_func or main

7
pkm

Se il tuo script è denominato con l'estensione .ps1 e sei in una finestra di PowerShell, esegui semplicemente ./myscript.ps1 (assumendo che il file si trovi nella tua directory di lavoro).

Questo è vero per me comunque su Windows 10 con PowerShell versione 5.1 in ogni caso, e non credo di aver fatto nulla per renderlo possibile.

6
rainabba

Nel caso in cui si desideri eseguire uno script PowerShell con l'Utilità di pianificazione di Windows, attenersi alla seguente procedura:

  1. Crea un'attività

  2. Imposta Program/Script su Powershell.exe

  3. Imposta Arguments su -File "C:\xxx.ps1"

È da un'altra risposta, Come eseguo uno script PowerShell automaticamente usando l'utilità di pianificazione di Windows?.

5
Gearon

Usa il parametro -File davanti al nome del file. Le virgolette fanno sì che PowerShell pensi che sia una stringa di comandi.

1
Engineer