我的问题:
我需要识别正在运行的特定进程的进程 ID。我的问题是,我通过 cscript.exe 运行了很多进程,因此识别大量“cscript.exe”进程的 ID 没什么用。我需要查看 ID 和传递给 cscript 的参数,以便更好地管理它们。
我目前所做的:
我使用以下内容来识别我的 cscript.exe 进程的启动时间和 ID:
Get-Process -Name cscript -IncludeUsername |select starttime, Id, UserName, ProcessName
对我来说,这种方法很管用,因为在这种情况下,任务很少,而且开始时间非常具体。但现在我正在运行几个任务,开始时间也差不多,所以我需要改进自己,才能正确识别这些任务。
在搜索用于启动 cscript.exe 进程的参数时,我了解了Get-WmiObject
并且目前正在以这种方式使用它:
Get-WmiObject Win32_Process -Filter "name = 'cscript.exe'" | Select-Object CommandLine| format-list
这很好,我能够看到 cscript.exe 以及传递给它的参数。但是,我仍然需要进程 ID。
我试图添加ID
到Select-Object
上面的命令,但结果却返回一个空字段CommandLine
。
我的问题:
我不太熟悉 PowerShell。话虽如此,我正在寻找帮助来结合这两个系统查询。我可以使用 PowerShell 做什么来返回进程名称、参数和 ID?如果可能的话,最好能看到其中包含的开始时间,但这并不像粗体列出的属性那么重要。
答案1
当然,我在放弃并询问之后很快就找到了答案。
由于对 PowerShell 不太熟悉,我放弃了,CommandLine
只是Select-Object CommandLine
想看看我会得到什么,结果我得到了一切。这包括进程 ID。如果我尝试ID
,我应该尝试ProcessId
。这就是问题所在。
所以,最终的解决方案是:
Get-WmiObject Win32_Process -Filter "name = 'cscript.exe'" | Select-Object CommandLine, ProcessId| format-list