Как запустить скрипт PowerShell

Как запустить скрипт PowerShell?

  • У меня есть скрипт с именем myscript.ps1
  • У меня установлены все необходимые рамки
  • Я установил эту политику выполнения вещь
  • Я следовал инструкциям на этой странице справки MSDN и я пытаюсь запустить его так: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1' (с или без --noexit)

который ничего не возвращает, кроме того, что имя файла выводится.

Нет ошибок, нет сообщений, ничего. О, когда я добавляю -noexit, происходит то же самое, но я остаюсь в PowerShell и должен выйти вручную.

Предполагается, что файл .ps1 запускает программу и возвращает уровень ошибки, зависящий от вывода этой программы. Но я совершенно уверен, что еще даже не доберусь туда.

Что я делаю неправильно?

Ответ 1

  1. Запустите Windows PowerShell и подождите, пока не появится командная строка PS
  2. Перейдите в каталог, где находится сценарий

    PS> cd C:\my_path\yada_yada\ (enter)
    
  3. Выполните скрипт:

    PS> .\run_import_script.ps1 (enter)
    

Что мне не хватает??

Или: вы можете запустить скрипт PowerShell из cmd.exe следующим образом:

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

в соответствии с этим блогом здесь

Или вы можете даже запустить скрипт PowerShell из своего приложения на С# :-)

Асинхронно выполнять сценарии PowerShell из вашего приложения С#

Ответ 2

Если вы используете PowerShell 2.0, используйте параметр PowerShell.exe -File, чтобы вызвать сценарий из другой среды, например cmd.exe. Например:

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

Ответ 3

Если вы хотите запустить script без изменения политики выполнения по умолчанию script, вы можете использовать переключатель обхода при запуске Windows PowerShell.

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

Ответ 4

Тип:

powershell -executionpolicy bypass -File .\Test.ps1

ПРИМЕЧАНИЕ. Здесь Test.ps1 находится PowerShell script.

Ответ 5

У меня была такая же проблема, и я попытался и попытался... Наконец, я использовал:

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

И поместите эту строку в пакетный файл, и это работает.

Ответ 6

Если у вас есть только PowerShell 1.0, это, похоже, достаточно хорошо делает:

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

Он передает файл script в командную строку PowerShell.

Ответ 7

Довольно легко. Щелкните правой кнопкой мыши файл .ps1 в Windows и в меню оболочки выберите "Выполнить с PowerShell".

Ответ 8

Самый простой способ - использовать PowerShell ISE, открывать сценарий, запускать и вызывать свой сценарий, функцию...

Enter image description here

Ответ 9

Использование файла 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

Если вам нужно запустить как администратор:

  • Сделайте ярлык, указывающий на командную строку (я назвал ее Административная командная строка)
  • Откройте свойства ярлыка и перейдите на вкладку Совместимость
  • В разделе "Уровень привилегий" установите флажок "Запустить эту программу в качестве администратора".

Ответ 10

  • Укажите путь к script, то есть настройку пути по cmd:

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

  • Запустите функцию точки входа PowerShell:

    Например, $> add or entry_func or main

Ответ 11

Если вы хотите запустить сценарий PowerShell с помощью планировщика задач Windows, выполните следующие действия:

  1. Создать задачу

  2. Установите Program/Script на Powershell.exe

  3. Установите Arguments на -File "C:\xxx.ps1"

Это из другого ответа: Как автоматически выполнить сценарий PowerShell с помощью планировщика задач Windows?.

Ответ 12

Если ваш script имеет имя с расширением .ps1 и вы находитесь в окне PowerShell, вы просто запустите ./myscript.ps1 (если файл находится в вашем рабочем каталоге).

Это правда для меня в любом случае в Windows 10 с PowerShell версии 5.1 в любом случае, и я не думаю, что я сделал что-либо, чтобы сделать это возможным.

Ответ 13

Используйте параметр -File перед именем файла. Кавычки заставляют PowerShell думать, что это строка команд.

Ответ 14

У меня есть очень простой ответ, который работает:

  1. Откройте PowerShell в режиме администратора
  2. Выполнить: set-executionpolicy unrestricted
  3. Откройте обычное окно PowerShell и запустите свой скрипт.

Я нашел это решение по ссылке, указанной в сообщении об ошибке: О политиках выполнения