Start-Process
Запускает один или несколько процессов на локальном компьютере.
Синтаксис
Start-Process
[-FilePath] <String>
[[-ArgumentList] <String[]>]
[-Credential <PSCredential>]
[-WorkingDirectory <String>]
[-LoadUserProfile]
[-NoNewWindow]
[-PassThru]
[-RedirectStandardError <String>]
[-RedirectStandardInput <String>]
[-RedirectStandardOutput <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-UseNewEnvironment]
[<CommonParameters>]
Start-Process
[-FilePath] <String>
[[-ArgumentList] <String[]>]
[-WorkingDirectory <String>]
[-PassThru]
[-Verb <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[<CommonParameters>]
Описание
Командлет Start-Process
запускает один или несколько процессов на локальном компьютере. Чтобы указать программу, которая выполняется в процессе, введите исполняемый файл или файл скрипта или файл, который можно открыть с помощью программы на компьютере. Если указать файл, отличный от исполняемого файла, Start-Process
запускает программу, связанную с файлом, аналогично командлету Invoke-Item
.
Параметры Start-Process
можно использовать для указания параметров, таких как загрузка профиля пользователя, запуск процесса в новом окне или использование альтернативных учетных данных.
Примеры
Пример 1. Запуск процесса, использующего значения по умолчанию
В этом примере запускается процесс, использующий файл Sort.exe в текущей папке. Команда использует все значения по умолчанию, включая стиль окна по умолчанию, рабочую папку и учетные данные.
Start-Process -FilePath "sort.exe"
Пример 2. Печать текстового файла
В этом примере запускается процесс печати файла C:\PS-Test\MyFile.txt.
Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print
Пример 3. Запуск процесса сортировки элементов в новый файл
В этом примере запускается процесс сортировки элементов в файле Testsort.txt и возвращает отсортированные элементы в файлах Sorted.txt. Все ошибки записываются в файл SortError.txt.
Start-Process -FilePath "Sort.exe" -RedirectStandardInput "Testsort.txt" -RedirectStandardOutput "Sorted.txt" -RedirectStandardError "SortError.txt" -UseNewEnvironment
Параметр useNewEnvironment
Пример 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
В примере используется 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`""
Параметры
-ArgumentList
Задает параметры или значения параметров, используемые при запуске этого командлета. Если параметры или значения параметров содержат пробел, они должны окружены экранируемыми двойными кавычками.
Тип: | String[] |
Aliases: | Args |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Credential
Указывает учетную запись пользователя, которая имеет разрешение на выполнение этого действия. Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, например один из командлета Get-Credential
. По умолчанию командлет использует учетные данные текущего пользователя.
Тип: | PSCredential |
Aliases: | RunAs |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-FilePath
Указывает необязательный путь и имя файла программы, которая выполняется в процессе. Введите имя исполняемого файла или документа, например .txt или .doc файла, связанного с программой на компьютере. Этот параметр является обязательным.
Если указать только имя файла, используйте параметр WorkingDirectory, чтобы указать путь.
Тип: | String |
Aliases: | PSPath |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-LoadUserProfile
Указывает, что этот командлет загружает профиль пользователя Windows, хранящийся в разделе реестра HKEY_USERS для текущего пользователя.
Этот параметр не влияет на профили PowerShell. Дополнительные сведения см. в about_Profiles.
Тип: | SwitchParameter |
Aliases: | Lup |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-NoNewWindow
Запустите новый процесс в текущем окне консоли. По умолчанию PowerShell открывает новое окно.
В той же команде нельзя использовать параметры NoNewWindow и WindowStyle.
Тип: | SwitchParameter |
Aliases: | nnw |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-PassThru
Возвращает объект процесса для каждого процесса, запущенного командлетом. По умолчанию этот командлет не создает выходные данные.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-RedirectStandardError
Указывает файл. Этот командлет отправляет все ошибки, созданные процессом, в указанный файл. Введите путь и имя файла. По умолчанию ошибки отображаются в консоли.
Тип: | String |
Aliases: | RSE |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-RedirectStandardInput
Указывает файл. Этот командлет считывает входные данные из указанного файла. Введите путь и имя файла входного файла. По умолчанию процесс получает входные данные с клавиатуры.
Тип: | String |
Aliases: | RSI |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-RedirectStandardOutput
Указывает файл. Этот командлет отправляет выходные данные, созданные процессом, в указанный файл. Введите путь и имя файла. По умолчанию выходные данные отображаются в консоли.
Тип: | String |
Aliases: | RSO |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-UseNewEnvironment
Указывает, что этот командлет использует новые переменные среды, указанные для процесса. По умолчанию запущенный процесс выполняется с переменными среды, указанными для компьютера и пользователя.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Verb
Указывает команду, используемую при запуске этого командлета. Доступные команды определяются расширением имени файла, который выполняется в процессе.
В следующей таблице показаны команды для некоторых распространенных типов файлов процесса.
Тип файла | Глаголы |
---|---|
.cmd | Редактирование, открытие, печать, запуски, RunAsUser |
.exe | Open, RunAs, RunAsUser |
.txt | Открытие, печать, печать, PrintTo |
.wav | Открытие, воспроизведение |
Чтобы найти команды, которые можно использовать с файлом, который выполняется в процессе, используйте командлет New-Object
для создания объекта System.Diagnostics.ProcessStartInfo для файла. Доступные команды находятся в свойстве Verbs объекта ProcessStartInfo. Дополнительные сведения см. в примерах.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Wait
Указывает, что этот командлет ожидает завершения указанного процесса и его потомков перед принятием дополнительных входных данных. Этот параметр подавляет командную строку или сохраняет окно до завершения процессов.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WindowStyle
Указывает состояние окна, используемого для нового процесса. Допустимые значения для этого параметра: обычные, скрытые, свернутыеи развернутые. Значение по умолчанию — обычный.
Нельзя использовать параметры WindowStyle и NoNewWindow в той же команде.
Тип: | ProcessWindowStyle |
Допустимые значения: | Normal, Hidden, Minimized, Maximized |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WorkingDirectory
Указывает расположение исполняемого файла или документа, который выполняется в процессе. По умолчанию используется папка для нового процесса.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Входные данные в этот командлет невозможно передать.
Выходные данные
None, System.Diagnostics.Process
Этот командлет создает объект System.Diagnostics.Process, если указать параметр PassThru. В противном случае этот командлет не возвращает выходные данные.
Примечания
- Этот командлет реализуется с помощью метода Start класса System.Diagnostics.Process. Дополнительные сведения об этом методе см. в разделе Process.Start Method.