[英]status of the process in powershell
Windows中的进程可以处于六种状态中的任何一种状态,即运行,准备,阻塞,挂起,新建和退出。 如何在Windows中使用PowerShell知道给定进程(名称,ID)的状态。 在UNIX中,此信息存储在/ proc / $ processid / status文件中。 它在Windows中的位置或如何在PowerShell中获取此信息。
“退出”状态由“退出代码”属性(由GetExitCodeProcess()
返回)表示。 在PS中,它由Get-Process
的HasExited
和ExitCode
字段(别名ps
)反映出来。
ps | where {$_.Id -eq <PID>} | select HasExited,ExitCode
Windows中的“running / wait / suspended”是线程的状态而不是进程(“suspend”是几个Wait子状态之一 )。 我没有找到任何关于通过PS的内置方式获取线程信息的信息,但我们可以调用相应的.NET功能 :
$process=[System.Diagnostics.Process]::GetProcessById(<PID>)
$threads=$process.Threads
$threads | select Id,ThreadState,WaitReason
你是对的,这是一个有趣的观点。 一种通过以下方式了解流程状态的方法:
$ProcessActive = Get-Process outlook -ErrorAction SilentlyContinue
if($ProcessActive -eq $null)
{
Write-host "I am not running"
}
else
{
Write-host "I am running"
}
如果outlook不是一个正在运行的进程,它将不会被列出但是-ErrorAction SilentlyContinue将继续并返回一个I am not running
如果它正在运行它将发送给你I am running
我不知道一个过程的其他状态......至少不知道如何dertermine
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.