Powershell как открыть exe

Запуск программы из PowerShell

Задача запуска исполняемого файла (программы или инструмента командной строки) из PowerShell довольно распространена. PowerShell предлагает несколько различных способов сделать это, которые мы рассмотрим позже в этой статье. Начнем с самого простого…

Прямое выполнение

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

Укажите местоположение ″C:\Program Files″
.\Hello.exe

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

Оператор &

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

Поскольку &amp не анализирует передаваемую команду, он не может интерпретировать ее параметры. Поэтому другие параметры/аргументы также передаются в виде текста между кавычками. Например, возьмем приведенную выше программу и немного изменим ее, чтобы она принимала в качестве аргумента нужный текст:

& ‘C:\Программа Files\Hello.exe’ ‘Hello world’

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

&amp ‘C:\Program Files\Hello.exe’ ‘Hello ,’ , ‘world’

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

$exe = ‘C:\Program Files\Hello.exe’
$arg1 = ‘Привет’
$arg2 = ‘мир’
& $exe $arg1 $arg2

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

$exe = ′C :\ Program Files\Hello.exe’
$allargs = @(‘Hello,’,’world’)
& $exe $alargs

Invoke-Expression

Процедура Invoke-Expression работает аналогично процедуре & — принимает текстовую строку и выполняет ее как команду. Например:

Invoke-Expression -Command ‘C:\Windows\Hello.exe’

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

Выражение вызова -Command ‘C:\Program Files\Hello.exe’

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

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

< 15

Start-Process

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

Выполнить процесс -FilePath ‘C:\Program Files\Hello.exe’

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

Start-Process -FilePath ‘C:\Program Files\Hello.exe’ -NoNewWindow -Wait

Читайте также:  Как изнутри открыть багажник приоры хэтчбек

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

Start Process -FilePath ‘C:\Program Files\Hello.exe’ -ArgumentList ‘Hello World’ -NoNewWindow -Wait

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

$process = Start-Process -FilePath ‘C:\Program Files\Hello.exe’ -Wait -PassThru

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

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

В принципе, класс .NET Process можно использовать напрямую без Процедура Start-Process. Например, запустить процесс можно командой:

Этот способ довольно неудобный и громоздкий (на мой взгляд), но немного более гибкий в использовании. Например, запустим нашу программу в текущем окне, передадим аргументы и получим результат выполнения:

$process = New-Object -TypeName System.Diagnostics.Process
$process.StartInfo.FileName = ″ C:\ Program Files \Hello.exe″
$process.StartInfo.Arguments = ″Hello World″
$process.StartInfo.RedirectStandardOutput = $true
$process.StartInfo.UseShellExecute = $false
$ process.Start ()
$process.WaitForExit()
$process.StandatdOutput.ReadToEnd()

С WMI можно делать практически все, в том числе бег А. Метод Создать класса WMI Win32_Process. Для этого вполне подходит , этот метод запускает процесс на локальной или удаленной машине через RPC. Например, для запуска программы на локальном компьютере можно использовать следующую команду:

А для запуска на удаленном компьютере команда будет выглядеть так:

В качестве альтернативы можно использовать командлет Invoke-WmiMethod:

Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList ″C:\Program Files\Hello.exe″

Или командлет Invoke-CimMethod:

Invoke-CimMethod -ClassName Win32_Process -MethodName Create -Arguments @

Запускается WMI процесс в отдельном окне и возвращает объект, содержащий идентификатор процесса (ProcessID) и результат выполнения (ReturnValue). ReturnValue может принимать следующие значения:

0 — успешное завершение
2 — доступ запрещен
3 — недостаточно прав
8 — Неизвестная ошибка
9 — Путь не найден
21 — Неверный параметр

Invoke-Command

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

При необходимости в программу можно передать аргументы:

Обратите внимание, что Invoke-Command не занимает много места. -friendly, поэтому вам придется поиграть с кавычками, чтобы избежать ошибок. Однако этих проблем можно избежать, например, комбинируя подпрограмму с оператором &:

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

Invoke-Command -ScriptBlock <″C:\’Program Files’\Hello.exe″>-ComputerName SRV1,SRV2,SRV3

$scriptblock = < ;″C:\’Program Files’\Hello.exe″>
$Computers = @(‘SRV1′,’SRV2′,’SRV3’)
Invoke-Command -ScriptBlock $scriptblock -ComputerName $Computers

По умолчанию подпрограмма возвращает результат запустить программу, и если она работает в фоновом режиме (параметр -AsJob), возвращает объект задания:

Invoke-Command -ScriptBlock -ComputerName localhost -AsJob -JobName Hello

Invoke-Item

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

Invoke-Item -Path ″C:\Program Files\Hello.exe″

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

Читайте также:  Как где получить справку для бассейна

Invoke-Item -Path ″C:\Files\test.txt″

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

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

Наконец, еще один способ запустить программу из PowerShell — с помощью оболочки cmd. . Метод достаточно «косвенный», но все же работает. Следующая команда запускает новый экземпляр cmd, запускает указанную в нем программу, завершает работу cmd и возвращает результат:

cmd /c ″C:\Program Files\Hello.exe″

PoSh предоставляет большое количество способов запуска программы. И каждый из них хорош наверняка Ситуация.

Кстати, эта статья основана на PowerShell: Deep Dive and Best Practice. Рекомендую прочитать, там есть еще много интересного.

Источник

PowerShell_ise

Windows PowerShell Integrated Scripting Environment (ISE) — графическое приложение который позволяет вам читать, писать, запускать, отлаживать и тестировать сценарии и модули в среде с графическим интерфейсом. Ключевые функции, такие как IntelliSense, show-command, фрагменты кода, завершение табуляции, подсветка синтаксиса, визуальная отладка и пользовательский контекст, помогают реализовать широкие возможности сценариев.

Использование PowerShell.exe

Инструмент PowerShell_ISE.exe запускает сеанс Windows PowerShell ISE. при использовании PowerShell_ISE.exe можно использовать его необязательные параметры для открытия файлов в Windows PowerShell ISE или для запуска сеанса Windows PowerShell ISE без профиля или с многопоточным пакетом.

Чтобы . запустите сеанс Windows PowerShell ISE из окна командной строки, в Windows PowerShell или из меню «Пуск» введите:

Чтобы открыть сценарий (.ps1), модуль (psm1), манифест модуля (.psd1), XML-файл или любой другой файл, поддерживаемый Windows PowerShell ISE, введите:

В Windows PowerShell 3.0 можно использовать необязательный параметр Файл , как показано ниже.

Чтобы запустить сеанс Windows PowerShell ISE без профилей Windows PowerShell, используйте параметр — профиль . (Параметр — профиль был введен в Windows PowerShell 3.0.) введите:

Чтобы просмотреть файл справки PowerShell_ISE.exe, введите:

Комментарии

Полный список параметров командной строки PowerShell_ISE. exe см. about_PowerShell_Ise.Exe.

Дополнительные сведения о других способах запуска Windows PowerShell см. в разделе Запуск Windows PowerShell.

Windows PowerShell запускается в варианте установки хоста в операционных системах Windows Server . но поскольку для Windows PowerShell ISE требуется графический интерфейс пользователя, он не будет работать в установках Server Core.

Источник

Запуск внешних исполняемых файлов в Windows PowerShell

В предыдущих статьях мы обсуждали командлеты, функции и сценарии в Windows PowerShell. Сегодня поговорим о последнем типе команд: внешних исполняемых файлах. Это классические пакетные файлы командной строки Windows (cmd.exe) и сценарии VBScript.

Эти файлы и сценарии старше, чем PowerShell, и, конечно, системные администраторы все еще могут использовать их в своей работе.

Windows PowerShell позволяет запускать файлы .bat и .cmd. Вы должны ввести путь к файлу для запуска. Например

Это создает процесс cmd.exe в PowerShell, который выполняет запрос. То же самое касается файлов .vbs. Windows PowerShell позволяет не только запускать эти файлы, но и вставлять код VBScript в сценарии PowerShell. если вы посмотрите в более широком смысле, вы можете встраивать код любого языка, поддерживающего сценарии ActiveX. Однако следует отметить, что синтаксис этих языков сильно отличается от PowerShell.

Читайте также:  Как многодетным быстро получить жилье

Если вы хотите запустить классическую команду командной строки в Windows PowerShell, просто используйте cmd / C .

предоставит вам список файлов в текущем каталоге только в виде имен, без каких-либо других атрибутов. Это команда cmd.exe, которую мы запускаем в консоли PowerShell.

Microsoft постаралась максимально сблизить синтаксис классической командной строки и Windows PowerShell. Поэтому многие известные нам команды работают в PowerShell без дополнительных манипуляций. Однако полной совместимости добиться не удалось из-за разного принципа реализации. cmd.exe и PowerShell работают. PowerShell представила управляемые командлеты. В классической командной строке Windows был список легко настраиваемых команд с большим количеством дополнительных параметров.

Как видите, Windows PowerShell предоставляет механизм обратной совместимости с командами и сценариями, написанными до вашей презентации. При этом логичнее было бы писать новые скрипты в PowerShell. В идеале, когда системный администратор изучит синтаксис PowerShell, он также сможет переписывать устаревшие сценарии.

Источник

about_Run_with_PowerShell

Краткое описание

В этой статье объясняется, как использовать функцию «Выполнить с PowerShell» для запуска сценария с диска файловой системы.

Подробное описание

Начиная с Windows PowerShell 3.0, вы можете использовать функцию «Выполнить с PowerShell». функционировать, чтобы запуск сценариев из проводника Windows 8 и Windows Server 2012, а также проводника Windows в более ранних версиях Windows.

Запуск с PowerShell предназначен для запуска сценариев, которые не имеют обязательных параметров и не возвращают результаты в командную строку.

При использовании Run with PowerShell окно консоли PowerShell появляется ненадолго, если вообще появляется. Вы не можете работать с ним.

Чтобы использовать функцию «Запуск с помощью PowerShell», выполните следующие действия.

В проводнике (или проводнике Windows) щелкните правой кнопкой мыши имя файла сценария и выберите «Запустить с PowerShell».

Выполнить с PowerShell запускает сеанс PowerShell с политикой пропуска, запускает сценарий и выходит из системы.

Запускает команду следующего формата:

«Выполнить с PowerShell» устанавливает политику пропуска только для сеанса (текущий экземпляр процесса PowerShell), в котором выполняется сценарий. Эта функция не изменяет политику запуска для компьютера или пользователя.

На функцию «Запуск с PowerShell» влияет только политика запуска AllSigned. Если для компьютера или пользователя действует политика выполнения AllSigned, параметр «Выполнить с PowerShell» будет запускать только подписанные сценарии. «Запуск с PowerShell» не влияет на другие политики выполнения. Дополнительные сведения см. в разделе about_Execution_Policies.

Примечание об устранении неполадок. Запуск с помощью PowerShell может потребовать подтверждения изменения политики выполнения.

Источник

Поделиться с друзьями
Решатор