Een PowerShell-script uitvoeren

Hoe voer ik een PowerShell-script uit?

  • Ik heb een script met de naam myscript.ps1
  • Ik heb alle benodigde frameworks geïnstalleerd
  • Ik heb dat uitvoeringsbeleidding ingesteld
  • Ik heb de instructies gevolgd op deze MSDN-helppagina
    en probeer het als volgt uit te voeren:
    powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'(met of zonder --noexit)

die precies niets teruggeeft, behalve dat de bestandsnaam wordt uitgevoerd.

Geen fout, geen bericht, niets. Oh, als ik -noexittoevoeg, gebeurt hetzelfde, maar ik blijf in PowerShell en moet handmatig afsluiten.

Het .ps1-bestand wordt verondersteld een programma uit te voeren en het foutniveau te retourneren, afhankelijk van de uitvoer van dat programma. Maar ik ben er vrij zeker van dat ik er nog niet eens ben.

Wat doe ik verkeerd?


Antwoord 1, autoriteit 100%

  1. Start Windows PowerShell en wacht even tot de opdrachtprompt PSverschijnt
  2. Navigeer naar de map waar het script zich bevindt

    PS> cd C:\my_path\yada_yada\ (enter)
    
  3. Voer het script uit:

    PS> .\run_import_script.ps1 (enter)
    

Wat mis ik??

Of: u kunt het PowerShell-script van cmd.exeals volgt uitvoeren:

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

Volgens deze Blog-bericht hier

Of u kunt zelfs uw PowerShell-script uit uw C # -toepassing uitvoeren: -)

Asynchrone voert PowerShell-scripts uit uw C # -toepassing


2, Autoriteit 32%

Als u op PowerShell 2.0 bent, gebruikt u PowerShell.exe’s -FileParameter om een ​​script uit een andere omgeving aan te roepen, zoals cmd.exe. Bijvoorbeeld:

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

3, Autoriteit 25%

Als u een script wilt uitvoeren zonder het standaard script uitvoeringsbeleid te wijzigen, kunt u de Bypass -schakelaar gebruiken bij het starten van Windows PowerShell .

powershell [-noexit] -executionpolicy bypass -File <Filename>

4, Autoriteit 11%

Type:

powershell -executionpolicy bypass -File .\Test.ps1

Opmerking: hier Test.ps1Is het PowerShell-script.


5, Autoriteit 4%

Ik heb hetzelfde probleem gehad en ik heb geprobeerd en geprobeerd … Eindelijk heb ik gebruikt:

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

en plaats deze regel in een batch-bestand en deze werkt.


6, Autoriteit 3%

Als u alleen Powershell 1.0 hebt, lijkt dit de truc goed genoeg te doen:

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

Het leidt het scriptbestand in op de PowerShell-opdrachtregel.


7, Autoriteit 2%

vrij eenvoudig. Klik met de rechtermuisknop op het .ps1-bestand in Windows en Klik in het menu Shell op RUN met PowerShell .


8

CMD (BAT) -bestand gebruiken:

@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

Als u uitgevoerd als beheerder :

  1. Maak een snelkoppeling naar de opdrachtprompt (ik heb het genoemd
    Administratieve opdrachtprompt)
  2. Open de eigenschappen van de snelkoppeling en ga naar het tabblad Compatibiliteit
  3. Zorg ervoor dat het selectievakje naast “Dit programma uitvoeren als een beheerder” wordt gecontroleerd

9

Als uw script is genoemd met de .ps1Extension en u bevindt zich in een PowerShell-venster, voert u zojuist uit ./myscript.ps1(ervan uitgaande dat het bestand is uw werkdirectory).

Dit is toch waar voor mij op Windows 10 met Powershell-versie 5.1 Hoe dan ook, en ik denk niet dat ik iets heb gedaan om het mogelijk te maken.


10

Een eenvoudige manier is om Powershell ase open script, te gebruiken, RUN EN ROEP UW SCRIPT, FUNCTION …


11

Als u een PowerShell-script wilt uitvoeren met Windows Taakplanner, volgt u de onderstaande stappen:

  1. Maak een taak

  2. Instellen Program/ScriptNAAR Powershell.exe

  3. Instellen ArgumentsNaar -File "C:\xxx.ps1"

Het is van een ander antwoord, Hoe voer ik een PowerShell-script uit met behulp van Windows Task Scheduler? .


12

  • Geef het pad van het script, dat wil zeggen, padinstelling per cmd:

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

  • Voer de toegangspuntfunctie van PowerShell uit:

    Bijvoorbeeld, $> add or entry_func or main


13

U kunt vanaf CMD als dit uitvoeren:

type "script_path" | powershell.exe -c -

14

Gebruik de -Fileparameter voor de bestandsnaam. De offertes maken Powershell Denken dat het een reeks commando’s is.

Other episodes