Start-Process
Запустить процесс
Параметры
-ArgumentList параметры запуска
-PassThru возвращает объект с информацией о процессе
Примеры
Запустить
блокнот
Wake up, Neo, select all
Start-Process "C:\Windows\System32\notepad.exe"
Запустить
проводник
, и открыть в нем дискC
Wake up, Neo, select all
Start-Process "Explorer.exe" -ArgumentList "C:\"
Запустить блокнот и ждать когда его закроют.
Wake up, Neo, select all
$info = Start-Process "C:\Windows\System32\notepad.exe" -PassThru
Write-Host "Процесс запущен" -ForegroundColor Green
$info.WaitForExit() # ждать когда процесс будет закрыт
Write-Host "Процесс закрыт" -ForegroundColor Cyan
полное описание
➡️➡️ ПЕРЕВОД ⬅️⬅️
Start-Process
SYNOPSIS
Starts one or more processes on the local computer.
SYNTAX
Default (Default)
Код: Выделить всё
Start-Process [-FilePath] <String> [[-ArgumentList] <String[]>] [-Credential <PSCredential>] [-WorkingDirectory <String>] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectStandardError <String>] [-RedirectStandardInput <String>] [-RedirectStandardOutput <String>] [-WindowStyle <ProcessWindowStyle>] [-Wait] [-UseNewEnvironment] [<CommonParameters>]
UseShellExecute
Код: Выделить всё
Start-Process [-FilePath] <String> [[-ArgumentList] <String[]>] [-WorkingDirectory <String>] [-PassThru] [-Verb <String>] [-WindowStyle <ProcessWindowStyle>] [-Wait] [<CommonParameters>]
DESCRIPTION
The
Start-Process
cmdlet starts one or more processes on the local computer. By default,
Start-Process
creates a new process that inherits all the environment variables that are defined
in the current process.To specify the program that runs in the process, enter an executable file or script file, or a file
that can be opened by using a program on the computer. If you specify a non-executable file,
Start-Process
starts the program that is associated with the file, similar to theInvoke-Item
cmdlet.You can use the parameters of
Start-Process
to specify options, such as loading a user profile,
starting the process in a new window, or using alternate credentials.EXAMPLES
Example 1: Start a process that uses default values
This example starts a process that uses the
Sort.exe
file in the current folder. The command uses
all of the default values, including the default window style, working folder, and credentials.Код: Выделить всё
Start-Process -FilePath "sort.exe"
Example 2: Print a text file
This example starts a process that prints the
C:\PS-Test\MyFile.txt
file.Код: Выделить всё
Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print
Example 3: Start a process to sort items to a new file
This example starts a process that sorts items in the
Testsort.txt
file and returns the sorted
items in theSorted.txt
files. Any errors are written to theSortError.txt
file.Код: Выделить всё
Start-Process -FilePath "Sort.exe" -RedirectStandardInput "Testsort.txt" -RedirectStandardOutput "Sorted.txt" -RedirectStandardError "SortError.txt" -UseNewEnvironment
The UseNewEnvironment parameter specifies that the process runs with its own environment
variables.Example 4: Start a process in a maximized window
This example starts the
Notepad.exe
process. It maximizes the window and retains the window until
the process completes.Код: Выделить всё
Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized
Example 5: Start PowerShell as an administrator
This example starts PowerShell by using the Run as administrator option.
Код: Выделить всё
Start-Process -FilePath "powershell" -Verb RunAs
Example 6: Using different verbs to start a process
This example shows how to find the verbs that can be used when starting a process. The available
verbs are determined by the filename extension of the file that runs in the process.Код: Выделить всё
$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args PowerShell.exe $startExe.verbs
Код: Выделить всё
open runas runasuser
The example uses
New-Object
to create a System.Diagnostics.ProcessStartInfo object for
PowerShell.exe, the file that runs in the PowerShell process. The Verbs property of the
ProcessStartInfo object shows that you can use the Open and RunAs verbs with
PowerShell.exe
, or with any process that runs a.exe
file.Example 7: Specifying arguments to the process
Both commands start the Windows command interpreter, issuing a
dir
command on theProgram Files
folder. Because this foldername contains a space, the value needs surrounded with escaped quotes.
Note that the first command specifies a string as ArgumentList. The second command is a string
array.Код: Выделить всё
Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%systemdrive%\program files`"" Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""
PARAMETERS
-ArgumentList
Specifies parameters or parameter values to use when this cmdlet starts the process. Arguments can
be accepted as a single string with the arguments separated by spaces, or as an array of strings
separated by commas. The cmdlet joins the array into a single string with each element of the array
separated by a single space.The outer quotes of the PowerShell strings are not included when the ArgumentList values are
passed to the new process. If parameters or parameter values contain a space or quotes, they need to
be surrounded with escaped double quotes.Код: Выделить всё
Type: System.String[] Parameter Sets: (All) Aliases: Args Required: False Position: 1 Default value: None Accept pipeline input: False Accept wildcard characters: False
-Credential
Specifies a user account that has permission to perform this action. By default, the cmdlet uses the
credentials of the current user.Type a user name, such as User01 or Domain01\User01, or enter a PSCredential object
generated by theGet-Credential
cmdlet. If you type a user name, you're prompted to enter the
password.Credentials are stored in a PSCredential
object and the password is stored as a SecureString.Код: Выделить всё
Type: System.Management.Automation.PSCredential Parameter Sets: Default Aliases: RunAs Required: False Position: Named Default value: Current user Accept pipeline input: False Accept wildcard characters: False
-FilePath
Specifies the optional path and filename of the program that runs in the process. Enter the name of
an executable file or of a document, such as a.txt
or.doc
file, that is associated with a
program on the computer. This parameter is required.If you specify only a filename, use the WorkingDirectory parameter to specify the path.
Код: Выделить всё
Type: System.String Parameter Sets: (All) Aliases: PSPath Required: True Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False
-LoadUserProfile
Indicates that this cmdlet loads the Windows user profile stored in the
HKEY_USERS
registry key
for the current user.This parameter does not affect the PowerShell profiles.
Код: Выделить всё
Type: System.Management.Automation.SwitchParameter Parameter Sets: Default Aliases: Lup Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
-NoNewWindow
Start the new process in the current console window. By default PowerShell opens a new window.
You cannot use the NoNewWindow and WindowStyle parameters in the same command.
Код: Выделить всё
Type: System.Management.Automation.SwitchParameter Parameter Sets: Default Aliases: nnw Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
-PassThru
Returns a process object for each process that the cmdlet started. By default, this cmdlet does not
generate any output.Код: Выделить всё
Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
-RedirectStandardError
Specifies a file. This cmdlet sends any errors generated by the process to a file that you specify.
Enter the path and filename. By default, the errors are displayed in the console.Код: Выделить всё
Type: System.String Parameter Sets: Default Aliases: RSE Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
-RedirectStandardInput
Specifies a file. This cmdlet reads input from the specified file. Enter the path and filename of
the input file. By default, the process gets its input from the keyboard.Код: Выделить всё
Type: System.String Parameter Sets: Default Aliases: RSI Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
-RedirectStandardOutput
Specifies a file. This cmdlet sends the output generated by the process to a file that you specify.
Enter the path and filename. By default, the output is displayed in the console.Код: Выделить всё
Type: System.String Parameter Sets: Default Aliases: RSO Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
-UseNewEnvironment
Indicates that this cmdlet uses new environment variables specified for the process. By default, the
started process runs with the environment variables inherited from the parent process.Код: Выделить всё
Type: System.Management.Automation.SwitchParameter Parameter Sets: Default Aliases: Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
-Verb
Specifies a verb to use when this cmdlet starts the process. The verbs that are available are
determined by the filename extension of the file that runs in the process.The following table shows the verbs for some common process file types.
File type Verbs .cmd Edit, Open, Print, RunAs, RunAsUser .exe Open, RunAs, RunAsUser .txt Open, Print, PrintTo .wav Open, Play To find the verbs that can be used with the file that runs in a process, use the
New-Object
cmdlet
to create a System.Diagnostics.ProcessStartInfo object for the file. The available verbs are in
the Verbs property of the ProcessStartInfo object. For details, see the examples.Код: Выделить всё
Type: System.String Parameter Sets: UseShellExecute Aliases: Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
-Wait
Indicates that this cmdlet waits for the specified process and its descendants to complete before
accepting more input. This parameter suppresses the command prompt or retains the window until the
processes finish.Код: Выделить всё
Type: System.Management.Automation.SwitchParameter Parameter Sets: (All) Aliases: Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
-WindowStyle
Specifies the state of the window that is used for the new process. The acceptable values for this
parameter are: Normal, Hidden, Minimized, and Maximized. The default value is
Normal.You cannot use the WindowStyle and NoNewWindow parameters in the same command.
Код: Выделить всё
Type: System.Diagnostics.ProcessWindowStyle Parameter Sets: (All) Aliases: Accepted values: Normal, Hidden, Minimized, Maximized Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
-WorkingDirectory
Specifies the location that the new process should start in. The default is the location of the
executable file or document being started. Wildcards are not supported. The path name must not
contain characters that would be interpreted as wildcards.Код: Выделить всё
Type: System.String Parameter Sets: (All) Aliases: Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose,
-WarningAction, and -WarningVariable.INPUTS
None
You cannot pipe input to this cmdlet.
OUTPUTS
None, System.Diagnostics.Process
This cmdlet generates a System.Diagnostics.Process object, if you specify the PassThru
parameter. Otherwise, this cmdlet does not return any output.NOTES
When using the Wait parameter,
Start-Process
waits for the process tree (the process and all
its descendants) to exit before returning control. This is different than the behavior of the
Wait-Process
cmdlet, which only waits for the specified processes to exit.This cmdlet is implemented by using the Start method of the System.Diagnostics.Process
class.On Windows, when you use UseNewEnvironment, the new process starts only containing the default
environment variables defined for the Machine scope. This has the side affect that the
$env:USERNAME
is set to SYSTEM. None of the variables from the User scope are included.