Get-Process (获取进程信息)
Get-Process 命令用于获取本地或远程计算机上正在运行的进程信息。
Get-Process [[-Name] <string[]>] [-Id <int[]>] [-ComputerName <string[]>] [-IncludeUserName] [<CommonParameters>]
常用选项
| 参数 | 含义 |
|---|---|
-Name |
指定要获取的进程名称 |
-Id |
指定要获取的进程 PID |
-ComputerName |
获取指定远程计算机上的进程 |
-IncludeUserName |
显示启动进程的用户名 |
-FileVersionInfo |
获取进程的文件版本信息 |
-Module |
获取进程加载的模块信息 |
基本示例
获取所有正在运行的进程,并显示启动用户。
Get-Process -IncludeUserName
获取指定名称的进程。
Get-Process -Name notepad
获取父进程
$process = Get-Process -Name Notepad
$process.Parent
Start-Process (启动进程)
Start-Process 命令用于启动一个或多个进程,可以执行应用程序、脚本或命令。
Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-WorkingDirectory <string>] [-Verb <string>] [-WindowStyle <ProcessWindowStyle>] [-Wait] [-PassThru] [<CommonParameters>]
常用选项
| 参数 | 含义 |
|---|---|
-FilePath |
指定要启动的程序路径 |
-ArgumentList |
指定传递给程序的参数 |
-Verb |
调用文件或程序在系统右键菜单中定义的操作 |
-WindowStyle |
设置窗口样式(Normal, Hidden, Minimized, Maximized) |
-NoNewWindow |
在当前终端运行,不弹新窗口。 |
-WorkingDirectory |
指定进程的工作目录 |
-Wait |
等待进程退出后再继续执行 |
-PassThru |
返回进程对象,便于后续操作 |
-RedirectStandardOutput |
重定向 stdout。 |
-RedirectStandardError |
重定向 stderr。 |
基本示例
启动批处理文件并等待。
Start-Process -FilePath "cmd.exe" -ArgumentList "/c backup.bat" -Wait
启动程序并获取进程对象。
$proc = Start-Process -FilePath "notepad.exe" -PassThru
$proc.Id
启动默认程序打开文件
Start-Process -FilePath "https://www.baidu.com" # 在默认浏览器中打开网页
Start-Process -FilePath "document.pdf" # 使用默认PDF阅读器打开文件
Start-Process -FilePath "C:\Windows" # 在资源管理器中打开
使用动词(Verb)执行特殊操作
Start-Process -FilePath "powershell.exe" -Verb RunAs # 以管理员权限运行
Stop-Process (终止进程)
Stop-Process 命令用于停止一个或多个正在运行的进程。
Stop-Process [-Id] <int[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Process -Name <string[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
常用选项
| 参数 | 含义 |
|---|---|
-Name |
指定要终止的进程名称 |
-Id |
指定要终止的进程 ID |
-Force |
强制终止进程 |
-PassThru |
返回已终止的进程对象 |
-Confirm |
执行操作前要求确认 |
-WhatIf |
模拟操作,显示会有什么影响 |
基本示例
按名称终止进程,要求确认。
Stop-Process -Name notepad -Confirm
按ID终止进程。
Stop-Process -Id 1234
Wait-Process (等待进程)
Wait-Process 命令用于等待进程停止,然后再继续执行脚本。
Wait-Process [-Id] <int[]> [[-Timeout] <int>] [<CommonParameters>]
Wait-Process -Name <string[]> [[-Timeout] <int>] [<CommonParameters>]
Wait-Process [-InputObject] <Process[]> [[-Timeout] <int>] [<CommonParameters>]
常用选项
| 参数 | 含义 |
|---|---|
-Name |
指定要等待的进程名称 |
-Id |
指定要等待的进程 ID |
-InputObject |
通过管道传入进程对象 |
-Timeout |
指定最大等待时间(秒) |
基本示例
设置超时时间,等待记事本进程结束。
Wait-Process -Name notepad -Timeout 10
等待指定ID的进程结束。
Wait-Process -Id 1234