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
cmdlet 在本地计算机上启动一个或多个进程。 若要指定在进程中运行的程序,请输入可执行文件或脚本文件,或者可以使用计算机上的程序打开的文件。 如果指定非可执行文件,Start-Process
启动与该文件关联的程序,类似于 Invoke-Item
cmdlet。
可以使用 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
为在 PowerShell 进程中运行的文件 PowerShell.exe创建 System.Diagnostics.ProcessStartInfo 对象。
ProcessStartInfo 对象的 Verbs 属性显示,可以将 Open 和 RunAs 谓词与 PowerShell.exe或运行 .exe 文件的任何进程一起使用。
示例 7:指定进程的参数
这两个命令都启动 Windows 命令解释器,在“Program Files”文件夹中发出 dir 命令。 由于此 foldername 包含空格,因此值需要用转义引号括起来。 请注意,第一个命令将字符串指定为 ArgumentList。 第二个命令是字符串数组。
Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%systemdrive%\program files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""
参数
-ArgumentList
指定此 cmdlet 启动进程时要使用的参数或参数值。 如果参数或参数值包含空格,则需要用转义双引号括起来。
类型: | String[] |
别名: | Args |
Position: | 1 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Credential
指定有权执行此操作的用户帐户。 键入用户名(如 User01 或 Domain01\User01),或输入 PSCredential 对象,例如 Get-Credential
cmdlet 中的一个。 默认情况下,cmdlet 使用当前用户的凭据。
类型: | PSCredential |
别名: | RunAs |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-FilePath
指定进程中运行的程序的可选路径和文件名。 输入与计算机上的程序关联的可执行文件或文档的名称,例如 .txt 或.doc文件。 此参数是必需的。
如果仅指定文件名,请使用 WorkingDirectory 参数指定路径。
类型: | String |
别名: | PSPath |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-LoadUserProfile
指示此 cmdlet 加载存储在当前用户的 HKEY_USERS 注册表项中的 Windows 用户配置文件。
此参数不会影响 PowerShell 配置文件。 有关详细信息,请参阅 about_Profiles。
类型: | SwitchParameter |
别名: | Lup |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-NoNewWindow
在当前控制台窗口中启动新进程。 默认情况下,PowerShell 会打开一个新窗口。
不能在同一命令中使用 NoNewWindow 和 WindowStyle 参数。
类型: | SwitchParameter |
别名: | nnw |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-PassThru
返回 cmdlet 启动的每个进程的进程对象。 默认情况下,此 cmdlet 不生成任何输出。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-RedirectStandardError
指定文件。 此 cmdlet 会将进程生成的任何错误发送到指定的文件。 输入路径和文件名。 默认情况下,错误显示在控制台中。
类型: | String |
别名: | RSE |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-RedirectStandardInput
指定文件。 此 cmdlet 从指定文件读取输入。 输入输入文件的路径和文件名。 默认情况下,进程从键盘获取其输入。
类型: | String |
别名: | RSI |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-RedirectStandardOutput
指定文件。 此 cmdlet 将进程生成的输出发送到指定的文件。 输入路径和文件名。 默认情况下,输出显示在控制台中。
类型: | String |
别名: | RSO |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-UseNewEnvironment
指示此 cmdlet 使用为进程指定的新环境变量。 默认情况下,启动的进程使用为计算机和用户指定的环境变量运行。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Verb
指定此 cmdlet 启动进程时要使用的谓词。 可用的谓词由进程中运行的文件的文件扩展名确定。
下表显示了一些常见进程文件类型的谓词。
文件类型 | 动词 |
---|---|
.cmd | 编辑、打开、打印、RunAs、RunAsUser |
.exe | Open、RunAs、RunAsUser |
.txt | 打开、打印、PrintTo |
.wav | 打开,播放 |
若要查找可用于进程中运行的文件的谓词,请使用 New-Object
cmdlet 为该文件创建 System.Diagnostics.ProcessStartInfo 对象。 可用谓词位于 ProcessStartInfo 对象的 Verbs 属性中。 有关详细信息,请参阅示例。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Wait
指示此 cmdlet 等待指定的进程及其后代完成,然后再接受更多输入。 此参数禁止命令提示符或保留窗口,直到进程完成。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WindowStyle
指定用于新进程的窗口的状态。 此参数的可接受值为:Normal、Hidden、最小化和 最大化。 默认值为 normal
不能在同一命令中使用 WindowStyle 和 NoNewWindow 参数。
类型: | ProcessWindowStyle |
接受的值: | Normal, Hidden, Minimized, Maximized |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WorkingDirectory
指定在进程中运行的可执行文件或文档的位置。 默认值为新进程的文件夹。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
None
不能通过管道将输入传递给此 cmdlet。
输出
None, System.Diagnostics.Process
如果指定 PassThru 参数,此 cmdlet 将生成 System.Diagnostics.Process 对象。 否则,此 cmdlet 不返回任何输出。
备注
- 此 cmdlet 是使用 System.Diagnostics.Process 类的 Start 方法实现的。 有关此方法的详细信息,请参阅 Process.Start 方法。