[玩转系统] Start-Process (Microsoft.PowerShell.Management)
作者:精品下载站 日期:2024-12-14 02:10:15 浏览:16 分类:玩电脑
Start-Process (Microsoft.PowerShell.Management)
Start-Process
模块 :Microsoft.PowerShell.Management在本地计算机上启动一个或多个进程。
句法
Start-Process
[-FilePath] <string>
[[-ArgumentList] <string[]>]
[-Credential <pscredential>]
[-WorkingDirectory <string>]
[-LoadUserProfile]
[-NoNewWindow]
[-PassThru]
[-RedirectStandardError <string>]
[-RedirectStandardInput <string>]
[-RedirectStandardOutput <string>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-UseNewEnvironment]
[-Environment <hashtable>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-Process
[-FilePath] <string>
[[-ArgumentList] <string[]>]
[-WorkingDirectory <string>]
[-PassThru]
[-Verb <string>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-Environment <hashtable>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
描述
Start-Process
cmdlet 在本地计算机上启动一个或多个进程。默认情况下,Start-Process
创建一个新进程,该进程继承当前进程中定义的所有环境变量。
要指定进程中运行的程序,请输入可执行文件或脚本文件,或者可以使用计算机上的程序打开的文件。如果指定不可执行文件,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
文件。 UseNewEnvironment 参数指定进程使用其自己的环境变量运行。
$processOptions = @{
FilePath = "sort.exe"
RedirectStandardInput = "TestSort.txt"
RedirectStandardOutput = "Sorted.txt"
RedirectStandardError = "SortError.txt"
UseNewEnvironment = $true
}
Start-Process @processOptions
此示例使用 splatting 将参数传递给 cmdlet。有关详细信息,请参阅 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
为在 PowerShell 进程中运行的文件 powershell.exe
创建一个 System.Diagnostics.ProcessStartInfo 对象。 ProcessStartInfo 对象的 Verbs 属性显示您可以在 powershell 中使用 Open 和
,或任何运行 RunAs
动词.exe.exe
文件的进程。
示例 7:指定进程的参数
这两个命令都会启动 Windows 命令解释器,对 Program Files
文件夹发出 dir
命令。由于此文件夹名称包含空格,因此该值需要用转义引号引起来。请注意,第一个命令将字符串指定为 ArgumentList。第二个命令是一个字符串数组。
Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%SystemDrive%\Program Files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%SystemDrive%\Program Files`""
示例 8:在 Linux 上创建分离进程
在 Windows 上,Start-Process
创建一个独立进程,该进程独立于启动 shell 保持运行。在非 Windows 平台上,新启动的进程附加到启动的 shell。如果启动 shell 关闭,则子进程将终止。
为了避免在类 Unix 平台上终止子进程,可以将 Start-Process
与 nohup
结合使用。以下示例在 Linux 上启动 PowerShell 的后台实例,即使在您关闭启动会话后该实例仍保持活动状态。 nohup
命令将输出收集到当前目录中的文件 nohup.out
中。
# Runs for 2 minutes and appends output to ./nohup.out
Start-Process nohup 'pwsh -noprofile -c "1..120 | % { Write-Host . -NoNewline; sleep 1 }"'
在此示例中,Start-Process
正在运行 Linux nohup
命令,该命令将 pwsh
作为独立进程启动。有关更多信息,请参阅 Wikipedia 上的 nohup 文章。
示例 9:覆盖进程的环境变量
默认情况下,当您使用 Start-Process 时,将使用与当前会话相同的环境变量创建新进程。您可以使用环境参数来覆盖这些变量的值。
在此示例中,环境变量 FOO
被添加到会话中,并以 foo
作为值。
该示例运行 Start-Process
三次,每次都返回 FOO
的值。第一个命令不会覆盖环境变量。在第二个命令中,FOO
设置为 bar
。在第三个命令中,FOO
设置为 $null
,这会将其删除。
$env:FOO = 'foo'
Start-Process pwsh -NoNewWindow -ArgumentList '-c', '$env:FOO'
Start-Process pwsh -NoNewWindow -ArgumentList '-c', '$env:FOO' -Environment @{
FOO = 'bar'
}
Start-Process pwsh -NoNewWindow -ArgumentList '-c', '$env:FOO' -Environment @{
FOO = $null
}
foo
bar
参数
-ArgumentList
指定此 cmdlet 启动进程时要使用的参数或参数值。参数可以作为用空格分隔的单个字符串接受,也可以作为用逗号分隔的字符串数组接受。该 cmdlet 将数组连接成单个字符串,数组的每个元素均以单个空格分隔。
当 ArgumentList 值传递到新进程时,不包括 PowerShell 字符串的外引号。如果参数或参数值包含空格或引号,则需要用转义双引号将它们引起来。有关更多信息,请参阅 about_Quoting_Rules。
为了获得最佳结果,请使用包含所有参数和任何所需引号字符的单个 ArgumentList 值。
类型 :String[]
别名:Args
位置:1
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Confirm
在运行 cmdlet 之前提示您进行确认。
类型 :SwitchParameter
别名:cf
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Credential
指定有权执行此操作的用户帐户。默认情况下,cmdlet 使用当前用户的凭据。
输入用户名,例如 User01 或 Domain01\User01,或输入由 Get-Credential cmdlet。如果您键入用户名,系统会提示您输入密码。
凭证存储在 PSCredential 对象中,密码存储为 SecureString。
笔记
有关 SecureString 数据保护的更多信息,请参阅 SecureString 的安全性如何?。
类型 :PS凭证
别名:RunAs
位置:命名
默认值:当前用户
必需的:False
接受管道输入:False
接受通配符:False
-Environment
指定要为进程覆盖的一个或多个环境变量作为哈希表。将环境变量的名称指定为哈希表中的键以及所需的值。要取消设置环境变量,请将其值指定为 $null
。
指定的变量在此过程中被替换。当您指定 PATH
环境变量时,它将替换为 $PSHOME
的值,后跟此参数中指定的值。在 Windows 上,该命令将机器和用户范围中的 PATH
值附加到新值之后。
此参数是在 PowerShell 7.4 中添加的。
类型 :哈希表
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-FilePath
指定进程中运行的程序的可选路径和文件名。输入与计算机上的程序关联的可执行文件或文档的名称,例如 .txt
或 .doc
文件。此参数是必需的。
如果仅指定与系统命令不对应的文件名,请使用 WorkingDirectory 参数指定路径。
类型 :String
别名:PSPath, Path
位置:0
默认值:None
必需的:True
接受管道输入:False
接受通配符:False
-LoadUserProfile
指示此 cmdlet 加载当前用户的 HKEY_USERS
注册表项中存储的 Windows 用户配置文件。该参数不适用于非 Windows 系统。
此参数不会影响 PowerShell 配置文件。有关详细信息,请参阅 about_Profiles。
类型 :SwitchParameter
别名:Lup
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-NoNewWindow
在当前控制台窗口中启动新进程。默认情况下,在 Windows 上,PowerShell 将打开一个新窗口。在非 Windows 系统上,您永远不会看到新窗口。
您不能在同一命令中使用 NoNewWindow 和 WindowStyle 参数。
该参数不适用于非 Windows 系统。
类型 :SwitchParameter
别名:nnw
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-PassThru
返回 cmdlet 启动的每个进程的进程对象。默认情况下,此 cmdlet 不会生成任何输出。
类型 :SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-RedirectStandardError
指定一个文件。此 cmdlet 将进程生成的任何错误发送到您指定的文件。输入路径和文件名。默认情况下,错误显示在控制台中。
类型 :String
别名:RSE
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-RedirectStandardInput
指定一个文件。此 cmdlet 从指定文件读取输入。输入输入文件的路径和文件名。默认情况下,该进程从键盘获取输入。
类型 :String
别名:RSI
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-RedirectStandardOutput
指定一个文件。此 cmdlet 将进程生成的输出发送到您指定的文件。输入路径和文件名。默认情况下,输出显示在控制台中。
类型 :String
别名:RSO
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-UseNewEnvironment
指示此 cmdlet 使用为进程指定的新环境变量。默认情况下,启动的进程使用从父进程继承的环境变量运行。
在 Windows 上,当您使用 UseNewEnvironment 时,新进程启动时仅包含为 Machine 范围定义的默认环境变量。这会产生副作用,即 $env:USERNAME
设置为 SYSTEM。不包含用户范围内的任何变量。
SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Verb
指定此 cmdlet 启动进程时要使用的动词。可用的动词由进程中运行的文件的文件扩展名决定。
下表显示了一些常见进程文件类型的动词。
.cmd编辑
、打开
、打印
、RunAs
、RunAsUser
打开
、RunAs
、RunAsUser
打开
、打印
、打印到
打开
,播放
要查找可与进程中运行的文件一起使用的动词,请使用 New-Object
cmdlet 为该文件创建 System.Diagnostics.ProcessStartInfo 对象。可用的动词位于 ProcessStartInfo 对象的 Verbs 属性中。有关详细信息,请参阅示例。
该参数不适用于非 Windows 系统。
类型 :String
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Wait
指示此 cmdlet 在接受更多输入之前等待指定进程及其后代完成。此参数会抑制命令提示符或保留窗口,直到进程完成。
类型 :SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-WhatIf
显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。
此参数是在 PowerShell 6.0 中引入的。
类型 :SwitchParameter
别名:wi
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-WindowStyle
指定用于新进程的窗口的状态。默认值为正常
。该参数可接受的值为:
Normal
Hidden
Minimized
Maximized
您不能在同一命令中使用 WindowStyle 和 NoNewWindow 参数。
该参数不适用于非 Windows 系统。在非 Windows 系统上使用时,您永远不会看到新窗口。
类型 :处理窗口样式
接受的值:正常、隐藏、最小化、最大化
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-WorkingDirectory
指定新进程应启动的位置。
如果未指定,cmdlet 默认为 FilePath 参数中指定的完全限定位置。如果FilePath参数的值不是完全限定的,则默认为调用进程的当前工作目录。
不支持通配符。路径不得包含会被解释为通配符的字符。
类型 :String
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
输入
无
您无法通过管道将对象传递到此 cmdlet。
输出
无
默认情况下,此 cmdlet 不返回任何输出。
流程
当您使用 PassThru 参数时,此 cmdlet 将返回一个 Process 对象。
笔记
PowerShell 包含以下 Start-Process
别名:
所有平台
saps
Windows
start
本机命令是安装在操作系统中的可执行文件。这些可执行文件可以从任何命令行 shell 运行,例如 PowerShell。通常,您运行该命令的方式与在 bash 或 cmd.exe 中运行的方式完全相同。 Start-Process
cmdlet 可用于运行任何本机命令,但仅应在需要控制命令执行方式时使用。
Start-Process
对于在非 Windows 平台上运行 GUI 程序非常有用。例如,运行 Start-Process gedit 来启动 GNOME 桌面环境中常见的图形文本编辑器。
默认情况下,Start-Process
异步启动进程。即使新进程仍在运行,控制权也会立即返回到 PowerShell。
- 在本地系统上,启动的进程独立于调用进程而存在。
- 在远程系统上,当远程会话结束时,新进程将在
Start-Process
命令之后立即终止。因此,您不能在远程会话中使用Start-Process
并期望启动的进程比会话的寿命长。
如果您确实需要在远程会话中使用 Start-Process
,请使用 Wait 参数调用它。或者您可以使用其他方法在远程系统上创建新进程。
使用 Wait 参数时,Start-Process
会等待进程树(进程及其所有子进程)退出,然后再返回控制权。这与 Wait-Process
cmdlet 的行为不同,后者仅等待指定进程退出。
在 Windows 上,Start-Process
最常见的用例是使用 Wait 参数来阻止进度,直到新进程退出。在非 Windows 系统上,很少需要这样做,因为命令行应用程序的默认行为相当于 Start-Process -Wait
。
此 cmdlet 是使用 System.Diagnostics.Process 类的 Start 方法实现的。有关此方法的更多信息,请参阅 Process.Start 方法。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag