Поделиться через


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.