Запуск скрипта PowerShell

Invoke-command

Командлет Invoke-Command умеет выполнять команды на локальном или удаленном компьютере, используя WinRM. Например, для запуска нашей программы на локальном компьютере используем команду:

Invoke-expression

Командлет Invoke-Expression работает примерно так-же, как и оператор & — берет текстовую строку и выполняет ее в виде команды. Например:

Invoke-Expression -Command ′C:WindowsHello.exe′

Однако у него есть один большой недостаток, а именно — неумение работать с пробелами. К примеру, следующая команда вызовет ошибку:

Invoke-Expression -Command ′C:Program FilesHello.exe′

Эта особенность делает применение командлета крайне неудобным. Хотя при необходимости подобных ошибок можно избежать с помощью дополнительных кавычек, например так:

Invoke-Expression -Command ″C:′Program Files′Hello.exe″

Invoke-item

Командлет Invoke-Item предназначен для применения к файлу действия по умолчанию. Так запустить исполняемый файл можно командой:

Invoke-Item -Path ″C:Program FilesHello.exe″

Однако наиболее удобно использовать Invoke-Item для открытия определенного типа файлов. Например так мы откроем текстовый файл:

Invoke-Item -Path ″C:Filestest.txt″

А так все текстовые файлы в папке:

Invoke-Item -Path ″C:Files*.txt″

Start-process

Командлет Start-Process запускает указанный файл в виде процесса, используя метод Start .NET класса Process. Например:

Start-Process -FilePath ′C:Program FilesHello.exe′

По умолчанию процесс выполняется в отдельном окне, которое закрывается по окончании процесса. Изменить такое поведение можно с помощью параметров, так следующая команда запустится в текущем окне:

Start-Process -FilePath ′C:Program FilesHello.exe′ -NoNewWindow -Wait

Также Start-Process позволяет передать в процесс дополнительные аргументы:

Start-Process -FilePath ′C:Program FilesHello.exe′ -ArgumentList ′Hello, world′ -NoNewWindow -Wait

По умолчанию командлет ничего не возвращает, но с помощью параметра -PassThru можно заставить его вернуть объект процесса. Этот объект очень удобно поместить в переменную:

$process = Start-Process -FilePath ′C:Program FilesHello.exe′ -Wait -PassThru

из которой можно затем можно узнать многие полезные вещи, такие как статус:

$process.HasExited

время:

$process.ExitTime

или код выполнения:

$process.ExitCode

Запуск оболочки из папки программы на диске

Откройте Проводник Windows и перейдите по следующему пути:

C:\Windows\System32\WindowsPowerShell\v1.0

Для запуска Windows PowerShell дважды кликните по файлу powershell.exe

Или нажмите правой кнопкой мыши на файле powershell.exe и в контекстном меню выберите пункт Запуск от имени администратора

Также Вы можете создать ярлык файла powershell.exe для запуска оболочки Windows PowerShell и закрепить его в панели задач или на начальном экране меню «Пуск».

Запуск скрипта powershell c параметрами

Собственно запуск нужно делать как если бы вы запускали обычную программу или bat-файл с параметрами. Например, для запуска скрипта с параметрами из командной, можно написать такую команду:

:/>  How to Open Command Prompt (Windows 10, 8, 7, etc.)

powershell -executionpolicy RemoteSigned -file <имя_скрипта> param1 param2 “еще один текстовый параметр”

В самом скрипте вы можете получить эти параметры так:

Запуск через диалог «выполнить»

Откройте диалоговое окно Выполнить, для этого нажмите сочетание клавиш Запуск скрипта PowerShellpowershell и нажмите клавишу Enter ↵.

Запуск через поиск windows

Для запуска Windows PowerShell воспользуемся поиском, для этого нажмите на значок поиска в панели задач или нажмите сочетание клавишЗапуск скрипта PowerShell

Использование диспетчера задач

Откройте диспетчер задач нажав сочетание клавиш Ctrl Shift Esc и в выпадающем меню Файл выберите Запустить новую задачу.

В открывшемся окне “Создание задачи” введите powershell и нажмите клавишу Enter ↵. Если нужно создать задачу с правами администратора, то установите флажок в чекбоксе Создать задачу с правами администратора. и нажмите клавишу Enter ↵.

Используем сочетание клавиш «win x»

Чтобы использовать этот способ, прочитайте статью ➯ как заменить командную строку оболочкой Windows PowerShell в меню Win X. После этого откройте меню «Win X», для этого нажмите сочетание клавиш Запуск скрипта PowerShell

Как запустить windows powershell в проводнике windows

Откройте Проводник Windows, выберите папку или диск где вы хотите запустить Windows PowerShell. Затем откройте вкладку Файл, далее выберите Запустить Windows PowerShell и потом нажмите на нужный пункт: Запустить Windows PowerShell или Запустить Windows PowerShell от имени администратора

Как запустить скрипт powershell в фоновом режиме?

Для этого достаточно использовать параметр запуска -WindowStyle, который может принимать значения: Normal, Minimized, Maximized и Hidden. Таким образом, чтобы запустить неподписанный скрипт в фоновом режиме, нужно выполнить команду:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file <имя_скрипта>

Так же можно еще при желании добавить -NonInteractive, чтобы скрипт не задавал никаких вопросов. Таким образом, скрипт выполнится незаметно для пользователя. Будmте внимательны, используя такой способ.

Как запустить скрипт powershell с помощью ярлыка?

Осуществить такую задачу можно двумя способами:

  1. Создать bat/cmd файл, в котором прописать команду для запуска скрипта (с параметрами вы ознакомились выше)
  2. Создать ярлык на PowerShell, который можно найти в папке c:WindowsSystem32WindowsPowerShellv<версия> и в свойствах ярлыка в поле “Объект” дописать необходимые параметры.

Таким образом, например, чтобы запустить скрипт powershell при входе пользователя, можно просто создать ярлык, как описано во 2-м пункте и поместить его в автозагрузку. Так же, создание ярлыка одним из способов выше позволит легко запустить скрипт от имени администратора или от имени любого другого пользователя как обычную программу.

:/>  Как посмотреть arp таблицу роутера

Скриптовый язык PowerShell – довольно мощный инструмент для решения различных задач, но его можно использовать не только для хороших вещей, но и во вред, поэтому, пользуйтесь им с умом 😉

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

Есть несколько различных способов запуска скрипта, ниже приведены основные:

  1. Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:Scriptstest.ps1, или перейти в папку скрипта командой cd C:Scripts и запустить его командой .test.ps1)Оболочку можно найти и запустить множеством способов. Один из способов – через меню “Пуск”. Для Windows 7 – нужно зайти во “Все программы” – “Стандартные” – “Windows PowerShell” и запустить оболочку “Windows PowerShell”. Для Windows 10 – нужно найти группу на букву “W” и в ней вы найдете “Windows PowerShell”.
  2. Запустить “Интегрированную среду сценариев Windows PowerShell ISE” – это программа – среда разработки, позволяющая редактировать и отлаживать скрипты PowerShell, которая так же есть по-умолчанию вместе с самим PowerShell. Запустив ее, нужно просто нажать кнопку “Открыть” или зайти в меню Файл – Открыть и выбрать нужный скрипт, затем нажать F5 или кнопку “Выполнить скрипт”.Найти Windows PowerShell ISE можно там же, где и оболочку PowerShell – в меню “Пуск”.
  3. Запустить стандартную коммандную строку и в ней написать:
    powershell -file <имя_скрипта> (пример: powershell -file myscript.ps1)

Если вы раньше не запускали скрипты PowerShell, то скорее всего, вы получите сообщение: Не удается загрузить файл <имя_скрипта>, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений. Связано это с тем, что из соображений безопасности и недопущения случайного выполнения вредоносного кода, все скрипты должны быть подписаны цифровой подписью.

Как разрешить выполнение неподписанного скрипта powershell?

1. В оболочке PowerShell, перед тем как запускать скрипт, выполнить команду, разрешающую выполнение неподписанных скриптов для текущего сеанса оболочки:

Set-ExecutionPolicy RemoteSigned -Scope Process

2. При запуске из стандартной коммандной строки использовать параметр -executionpolicy, т.е. запускать скрипт так:

powershell -executionpolicy RemoteSigned -file <имя_скрипта>

Оба способа устанавливают политику только для текущего сеанса, при этом, политика безопасности выполнения скриптов PowerShell, прописанная в реестре, не будет изменена и останется прежней. Если вы хотите поменять политику безопасности выполнения скриптов “на постоянно”, то используйте такой способ:

3. Разрешить запуск навсегда: запустить оболочку PowerShell от имени “Администратора”, затем выполните команду:

Set-ExecutionPolicy RemoteSigned

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

:/>  Восстановление параметров виндовс 7

Примечание: Если скрипт был загружен из интернета, то чтобы избежать запроса на подтверждение запуска, нужно вместо RemoteSigned использовать Bypass – полное отключение любых запросов и предупреждений.

Оператор &

Если необходимо указать полный путь к исполняемому файлу, то можно воспользоваться оператором & (оператор вызова). Он позволяет выполнить строку текста, указанную в кавычках, как единую команду. Например:

& ′C:Program FilesHello.exe′

Поскольку оператор & не анализирует передаваемую команду, то он не может интерпретировать ее параметры. Поэтому дополнительные параметрыаргументы передаются также в виде текста, в кавычках. Для примера возьмем предыдущую программу и немного изменим ее, так что она принимает нужный текст в виде аргумента:

& ′C:Program FilesHello.exe′  ′Hello, world′

При желании можно указать нескольких аргументов через запятую:

& ′C:Program FilesHello.exe′  ′Hello,′, ′ world′

Для удобства команду и аргументы можно поместить в переменные:

$exe = ′C:Program FilesHello.exe′$arg1 = ′Hello′$arg2 = ′world′& $exe $arg1 $arg2

Ну и если аргументов много, то их можно объединить, воспользовавшись такой конструкцией:

$exe = ′C:Program FilesHello.exe′$allargs = @(′Hello,′,′world′)& $exe $allargs

Открытие оболочки с помощью меню «пуск»

Откройте меню «Пуск», в списке приложений в группе под буквой «W», найдите и разверните папку Windows PowerShell и выберите соответствующее приложение или нажмите правой кнопкой мыши и в контекстном меню выберите пункт Запуск от имени администратора

Прямой запуск

Самый простой способ запустить исполняемый файл в PowerShell — это перейти в директорию с файлом и стартовать его напрямую. Для примера возьмем простенькую программку, выводящую приветствие, и выполним ее командой:

Set-Location ″C:Program Files″.Hello.exe

Обратите внимание, что даже находясь в нужном каталоге, требуется указывать относительный путь к исполняемому файлу. Исключение составляют файлы из директорий, перечисленных в переменной окружения (path). Например различные встроенные программы и утилиты (notepad, calc, ping и т.п.), находящиеся в директории WindowsSystem32, можно запускать без указания пути.

Рассмотренные cmd-утилиты и соответствующие им powershell командлеты

В фокусе бесплатного руководства оказались следующие CMD-утилиты:

Оставьте комментарий