Запускает один или несколько процессов на локальном компьютере.
Синтаксис
Start-Process [-FilePath] [[-ArgumentList] ] [-Credential ] [-WorkingDirectory ] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectStandardError ] [-RedirectStandardInput ] [-RedirectStandardOutput ] [-WindowStyle ] [-Wait] [-UseNewEnvironment] []
Start-Process [-FilePath] [[-ArgumentList] ] [-WorkingDirectory ] [-PassThru] [-Verb ] [-WindowStyle ] [-Wait] []
Описание
Командлет Start-Process запускает один или несколько процессов на локальном компьютере. По умолчанию создает новый процесс, Start-Process который наследует все переменные среды, определенные в текущем процессе.
Чтобы указать программу, которая выполняется в процессе, введите исполняемый файл или файл скрипта или файл, который можно открыть с помощью программы на компьютере. Если указан неисполняемый файл, запускает программу, Start-Process связанную с файлом, аналогично командлету Invoke-Item .
Параметры можно использовать Start-Process для указания параметров, таких как загрузка профиля пользователя, запуск процесса в новом окне или использование альтернативных учетных данных.
Windows Powershell: Что это и как использовать? Основные команды ️⚙️
Примеры
Пример 1. Запуск процесса, использующего значения по умолчанию
В этом примере запускается процесс, использующий Sort.exe файл в текущей папке. Команда использует все значения по умолчанию, включая стиль окна по умолчанию, рабочую папку и учетные данные.
Start-Process -FilePath «sort.exe»
Пример 2. Печать текстового файла
В этом примере запускается процесс печати C:PS-TestMyFile.txt файла.
Start-Process -FilePath «myfile.txt» -WorkingDirectory «C:PS-Test» -Verb Print
Пример 3. Запуск процесса сортировки элементов в новый файл
В этом примере запускается процесс, который сортирует элементы в TestSort.txt файле и возвращает отсортированные элементы в файлах Sorted.txt . Все ошибки записываются в SortError.txt файл. Параметр UseNewEnvironment указывает, что процесс выполняется с собственными переменными среды.
В этом примере используется сплаттинг для передачи параметров командлету . Дополнительные сведения см. в разделе about_Splatting.
Пример 4. Запуск процесса в развернутом окне
В этом примере запускается Notepad.exe процесс. Окно разворачивается во весь экран и удерживается до завершения процесса.
Start-Process -FilePath «notepad» -Wait -WindowStyle Maximized
Пример 5. Запуск PowerShell от имени администратора
Этот пример запускает PowerShell с помощью параметра Запуск от имени администратора .
Start-Process -FilePath «powershell» -Verb RunAs
Пример 6. Использование разных команд для запуска процесса
В этом примере показано, как найти команды, которые можно использовать при запуске процесса. Доступные команды определяются расширением имени файла, который запускается в процессе.
$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args powershell.exe $startExe.verbs open runas runasuser
В примере используется для New-Object создания объекта System.Diagnostics.ProcessStartInfo для powershell.exe , файла, который выполняется в процессе PowerShell. Свойство Verbs объекта ProcessStartInfo показывает, что команды Open и RunAs можно использовать с powershell.exe или с любым процессом, выполняющим .exe файл.
Пример 7. Указание аргументов для процесса
Обе команды запускают интерпретатор команд Windows, выдавая dir команду в папке Program Files . Так как это имя папки содержит пробел, значение должно быть заключено в экранированные кавычки. Обратите внимание, что первая команда указывает строку как ArgumentList. Вторая команда представляет собой массив строк.
Start-Process -FilePath «$env:comspec» -ArgumentList «/c dir `»%SystemDrive%Program Files`»» Start-Process -FilePath «$env:comspec» -ArgumentList «/c»,»dir»,»`»%SystemDrive%Program Files`»»
Пример 8. Выполнение команды от имени администратора с помощью альтернативных учетных данных
В Windows можно запустить Start-Process -Verb RunAs , чтобы запустить процесс с повышенными разрешениями. Это повышает уровень контекста текущего пользователя.
Параметр Credential позволяет указать альтернативное имя пользователя и пароль, что позволяет запустить процесс в другом пользовательском содержимом. Однако параметры Credential и Verb нельзя использовать вместе.
Чтобы запустить процесс с повышенными правами, используя альтернативные учетные данные, необходимо сначала запустить PowerShell с помощью альтернативных учетных данных, а затем использовать Start-Process для запуска процесса с повышенными правами.
$cred = Get-Credential $args = ‘-noprofile -command «Start-Process cmd.exe -Verb RunAs -args /k»‘ Start-Process pwsh.exe -Credential $cred -WindowStyle Hidden -ArgumentList $args
Пример начинается cmd.exe с повышенных разрешений из сеанса PowerShell, который выполняется с альтернативными учетными данными.
Параметры
-ArgumentList
Указывает параметры или значения параметров, которые будут использоваться при запуске этого командлета процесса. Аргументы могут приниматься как одна строка с аргументами, разделенными пробелами, или как массив строк, разделенных запятыми. Командлет объединяет массив в одну строку, при этом каждый элемент массива отделяется одним пробелом.
Внешние кавычки строк PowerShell не включаются при передаче значений ArgumentList в новый процесс. Если параметры или значения параметров содержат пробелы или кавычки, их необходимо заключить в экранированные двойные кавычки. Дополнительные сведения см. в разделе about_Quoting_Rules.
Для получения наилучших результатов используйте одно значение ArgumentList , содержащее все аргументы и все необходимые символы кавычек.
Type: | String [ ] |
Aliases: | Args |
Position: | 1 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Указывает учетную запись пользователя с разрешением на выполнение этого действия. По умолчанию командлет использует учетные данные текущего пользователя.
Введите имя пользователя, например User01 или Domain01User01, или введите объект PSCredential , созданный командлетом Get-Credential . Если ввести имя пользователя, вам будет предложено ввести пароль.
Учетные данные хранятся в объекте PSCredential , а пароль хранится как SecureString.
Дополнительные сведения о защите данных SecureString см. в разделе Как безопасно secure is SecureString?.
Type: | PSCredential |
Aliases: | RunAs |
Position: | Named |
Default value: | Current user |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Если указано только имя файла, используйте параметр WorkingDirectory , чтобы указать путь.
Type: | String |
Aliases: | PSPath |
Position: | |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LoadUserProfile
Указывает, что этот командлет загружает профиль пользователя Windows, хранящийся в HKEY_USERS разделе реестра для текущего пользователя.
Этот параметр не влияет на профили PowerShell. Дополнительные сведения см. в разделе about_Profiles.
Type: | SwitchParameter |
Aliases: | Lup |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoNewWindow
Предотвращает запуск процесса в новом окне. По умолчанию в Windows PowerShell открывает новое окно.
Параметры NoNewWindow и WindowStyle нельзя использовать в одной команде.
Type: | SwitchParameter |
Aliases: | nnw |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Возвращает объект процесса для каждого запущенного командлетом процесса По умолчанию этот командлет не создает никаких выходных данных.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardError
Указывает файл. Этот командлет отправляет все ошибки, созданные процессом, в указанный файл. Введите путь и имя файла. По умолчанию все ошибки отображаются в консоли.
Type: | String |
Aliases: | RSE |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardInput
Указывает файл. Этот командлет считывает входные данные из указанного файла. Введите путь и имя входного файла. По умолчанию процесс получает входные данные с клавиатуры.
Type: | String |
Aliases: | RSI |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardOutput
Указывает файл. Этот командлет отправляет выходные данные, созданные процессом, в указанный файл. Введите путь и имя файла. По умолчанию выходные данные отображаются в консоли.
Type: | String |
Aliases: | RSO |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseNewEnvironment
Указывает, что этот командлет использует новые переменные среды, указанные для процесса. По умолчанию запущенный процесс выполняется с переменными среды, унаследованными от родительского процесса.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Verb
Указывает команду, используемую при запуске этого командлета. Доступные команды определяются расширением имени файла, который выполняется в процессе.
В приведенной ниже таблице показаны команды, доступные для некоторых распространенных типов файлов.
.cmd | Edit , Open , Print , RunAs , RunAsUser |
EXE | Open , RunAs , RunAsUser |
.txt | Open , Print , PrintTo |
.wav | Open , Play |
Чтобы найти команды, которые можно использовать с файлом, который выполняется в процессе, используйте New-Object командлет для создания объекта System.Diagnostics.ProcessStartInfo для файла. Доступные команды находятся в свойстве Verbs объекта ProcessStartInfo . Дополнительные сведения см. в примерах.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Wait
Указывает, что этот командлет ожидает завершения указанного процесса и его потомков, прежде чем принимать дополнительные входные данные. Этот параметр подавляет командную строку или сохраняет окно до завершения процессов.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WindowStyle
Указывает состояние окна, используемого для нового процесса. Значение по умолчанию — Normal . Допустимые значения для этого параметра:
Параметры WindowStyle и NoNewWindow нельзя использовать в одной команде.
Type: | ProcessWindowStyle |
Accepted values: | Normal, Hidden, Minimized, Maximized |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WorkingDirectory
Указывает расположение, в котором должен начаться новый процесс. По умолчанию используется расположение запускаемого исполняемого файла или документа. Подстановочные знаки не поддерживаются. Путь не должен содержать символы, которые будут интерпретироваться как подстановочные знаки.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
None
Вы не можете передать объекты в этот командлет.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru этот командлет возвращает объект Process .
Примечания
Windows PowerShell включает следующие псевдонимы для Start-Process :
Собственные команды — это исполняемые файлы, установленные в операционной системе. Эти исполняемые файлы можно запускать из любой оболочки командной строки, например PowerShell. Обычно команда выполняется точно так же, как в bash или cmd.exe . Командлет Start-Process можно использовать для выполнения любых собственных команд, но его следует использовать только в том случае, если необходимо управлять выполнением команды.
По умолчанию Start-Process запускает процесс асинхронно. Элемент управления мгновенно возвращается в PowerShell, даже если новый процесс все еще выполняется.
- В локальной системе запущенный процесс находится в независимом от вызывающего процесса.
- В удаленной системе новый процесс завершается после завершения удаленного сеанса сразу после Start-Process выполнения команды . Таким образом, вы не можете использовать Start-Process в удаленном сеансе, ожидая, что запущенный процесс выживет сеанс.
Если вам нужно использовать Start-Process в удаленном сеансе, вызовите его с помощью параметра Wait . Вы также можете использовать другие методы для создания нового процесса в удаленной системе.
При использовании параметра Wait ожидает выхода Start-Process дерева процесса (процесса и всех его потомков) перед возвратом управления. Это отличается от поведения командлета Wait-Process , который ожидает только завершения указанных процессов.
В Windows наиболее распространенным вариантом Start-Process использования является использование параметра Wait для блокировки хода выполнения до завершения нового процесса. В системе, отличной от Windows, это редко требуется, так как поведение по умолчанию для приложений командной строки эквивалентно Start-Process -Wait .
Этот командлет реализуется с помощью метода Start класса System.Diagnostics.Process . Дополнительные сведения об этом методе см. в разделе Метод Process.Start.
Связанные ссылки
- about_Quoting_Rules
- Debug-Process
- Get-Process
- Start-Service
- Stop-Process
- Wait-Process
Источник: learn.microsoft.com
Как открыть файл через PowerShell?
Открыть windows powershell можно через пуск. В Windows 8.1, Windows 2012 R2 переходите в пункт Служебные – Windows и правым кликом выбираете запустить от имени администратора. Щелкаем по нему правым кликом мыши и выбираем пункт свойства. Сразу можете посмотреть путь до файла, где он лежит в системе.
Как запустить файл через Повершел?
Есть несколько различных способов запуска скрипта, ниже приведены основные: Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:Scriptstest. ps1, или перейти в папку скрипта командой cd C:Scripts и запустить его командой .
Как в PowerShell запустить exe?
Для запуска исполняемого файла в оболочке PowerShell достаточно просто указать его имя. Точно так же запускаются исполняемые файлы в оболочке Cmd.exe.
Как удалить файл через PowerShell?
- откройте Windows PowerShell;
- найдите нужный файл или папку;
- выполните команду по удалению объекта.
Как запустить команду в PowerShell?
Работает это следующим образом — запускаете из командной строки исполняемый файл оболочки PowerShell, и через параметр command указываете необходимую команду для выполнения. После её выполнения, без всяких дополнительных окон запустится powershell, и завершит указанны процесс проводника.
Как открыть папку с помощью PowerShell?
- Используйте командлет Invoke-Item или его псевдоним: ii. .
- Для Powershell и cmd совместимый способ (и я думаю, что самый распространенный способ): .
- Используйте Invoke-Item , псевдоним ii : ii d:temp
- вы можете использовать explorer.exe, чтобы открыть папку: explorer.
Как запустить JAR файл в командной строке PowerShell?
Перейдите в папку установки Java, перейдите в папку / bin /, щелкните правой кнопкой мыши файл Java.exe и установите для него «Запуск от имени администратора». Нажмите Windows + Икс ключи и выберите «Командная строка (администратор)» или же Powershell (Admin) и введите CMD.
Как работают исполняемые файлы?
Исполняемые файлы-это двоичные файлы, понятные операционной системе. Исполняемый файл будет содержать разделы, в которых есть данные. Windows использует формат PE . Формат PE имеет раздел, в котором есть машинные инструкции.
Как открыть PS1?
- Шаг 1. Скачайте и установите Microsoft Windows PowerShell.
- Шаг 2. Убедитесь, что у вас установлена последняя версия Microsoft Windows PowerShell.
- Шаг 3. Настройте приложение по умолчанию для открытия PS1 файлов на Microsoft Windows PowerShell.
- Шаг 4. Проверьте PS1 на наличие ошибок
Как установить PowerShell на Windows 7?
- Перейдите на страницу Powershell 7.0.0 на GitHub.
- В зависимости от разрядности вашей системы скачайте нужный установочный файл и запустите его.
- Нажмите на “Next”.
- Вам предложит изменить папку для установки программы, вы можете оставить по умолчанию и нажать “Next”.
Как вызвать cmd из PowerShell?
Нажимаем правой клавишей мыши по углу пуск или жмем Win+X, а в открывшемся меню выбираем подходящую командную строку. Если вам необходим PowerShell с правами администратора, то выбираем и командную строку с правами администратора. В открывшееся окно вводим powershell и жмём Enter.
Как сохранить скрипт PowerShell?
- В меню Файл выберите Сохранить как. Откроется диалоговое окно Сохранить как.
- В поле Имя файла введите имя для файла.
- В поле Тип файла выберите тип файла. Например, в поле Тип файла выберите «PowerShell Scripts (* . ps1)».
- Нажмите кнопку Сохранить.
Как удалить все файлы из папки?
- Нажмите Ctrl+A на клавиатуре, чтобы выделить все файлы в открывшейся папке.
- Нажмите Del (Delete) на клавиатуре, чтобы удалить файлы.
Как удалить файлы с определенным именем?
Команда DEL (ERASE) используется для удаления одного или нескольких файлов. имена — Имена одного или нескольких файлов. Для удаления сразу нескольких файлов используются подстановочные знаки. Если указан каталог, из него будут удалены все файлы.
Как можно удалить все файлы?
На самом деле все просто, для того чтобы удалить файл полностью (минуя корзину) достаточно выбрать нужный файл и воспользоваться комбинацией клавиш Shift+Delete. Нажимать обе клавиши одновременно ненужно, вначале нажмите «Shift», а затем не отпуская ее нажмите клавишу «Del».
Источник: kamin159.ru
Run Exe File With Parameters in PowerShell
- Methods to Run exe File in PowerShell
- the Call Operator ( host.org» -u «username» -p «password»]
Источник: www.delftstack.com