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-файл с параметрами. Например, для запуска скрипта с параметрами из командной, можно написать такую команду:
powershell -executionpolicy RemoteSigned -file <имя_скрипта> param1 param2 “еще один текстовый параметр”
В самом скрипте вы можете получить эти параметры так:
Запуск через диалог «выполнить»
Откройте диалоговое окно Выполнить, для этого нажмите сочетание клавиш
powershell и нажмите клавишу Enter ↵.
Запуск через поиск windows
Для запуска Windows PowerShell воспользуемся поиском, для этого нажмите на значок поиска в панели задач или нажмите сочетание клавиш
Использование диспетчера задач
Откройте диспетчер задач нажав сочетание клавиш Ctrl Shift Esc и в выпадающем меню Файл выберите Запустить новую задачу.
В открывшемся окне “Создание задачи” введите powershell и нажмите клавишу Enter ↵. Если нужно создать задачу с правами администратора, то установите флажок в чекбоксе Создать задачу с правами администратора. и нажмите клавишу Enter ↵.
Используем сочетание клавиш «win x»
Чтобы использовать этот способ, прочитайте статью ➯ как заменить командную строку оболочкой Windows PowerShell в меню Win X. После этого откройте меню «Win X», для этого нажмите сочетание клавиш 
Как запустить 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 с помощью ярлыка?
Осуществить такую задачу можно двумя способами:
- Создать bat/cmd файл, в котором прописать команду для запуска скрипта (с параметрами вы ознакомились выше)
- Создать ярлык на PowerShell, который можно найти в папке c:WindowsSystem32WindowsPowerShellv<версия> и в свойствах ярлыка в поле “Объект” дописать необходимые параметры.
Таким образом, например, чтобы запустить скрипт powershell при входе пользователя, можно просто создать ярлык, как описано во 2-м пункте и поместить его в автозагрузку. Так же, создание ярлыка одним из способов выше позволит легко запустить скрипт от имени администратора или от имени любого другого пользователя как обычную программу.
Скриптовый язык PowerShell – довольно мощный инструмент для решения различных задач, но его можно использовать не только для хороших вещей, но и во вред, поэтому, пользуйтесь им с умом 😉
Как запустить скрипт powershell?
Есть несколько различных способов запуска скрипта, ниже приведены основные:
- Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:Scriptstest.ps1, или перейти в папку скрипта командой cd C:Scripts и запустить его командой .test.ps1)Оболочку можно найти и запустить множеством способов. Один из способов – через меню “Пуск”. Для Windows 7 – нужно зайти во “Все программы” – “Стандартные” – “Windows PowerShell” и запустить оболочку “Windows PowerShell”. Для Windows 10 – нужно найти группу на букву “W” и в ней вы найдете “Windows PowerShell”.
- Запустить “Интегрированную среду сценариев Windows PowerShell ISE” – это программа – среда разработки, позволяющая редактировать и отлаживать скрипты PowerShell, которая так же есть по-умолчанию вместе с самим PowerShell. Запустив ее, нужно просто нажать кнопку “Открыть” или зайти в меню Файл – Открыть и выбрать нужный скрипт, затем нажать F5 или кнопку “Выполнить скрипт”.Найти Windows PowerShell ISE можно там же, где и оболочку PowerShell – в меню “Пуск”.
- Запустить стандартную коммандную строку и в ней написать:
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
Однако, я бы не рекомендовал такой способ, чтобы не подвергать ваш компьютер возможным угрозам, т.к. так вы разрешаете выполнение скриптов всем и всегда.
Примечание: Если скрипт был загружен из интернета, то чтобы избежать запроса на подтверждение запуска, нужно вместо 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-утилиты:



