我正在获取过程名称,用户名,使用以下脚本powershell
中的过程时间$owners = @{}
gwmi win32_process |% {$owners[$_.handle] = $_.getowner().user}
$data = @{}
get-process | select processname,Id,PrivilegedProcessorTime,UserProcessorTime,@{l="Owner";e={$owners[$_.id.tostring()]}}
它将数据作为
提供ProcessName : UpdaterUI
Id : 6824
PrivilegedProcessorTime : 00:00:04.6332297
UserProcessorTime : 00:00:04.1964269
Owner : VM82958
我想获取单个过程的数据,我尝试了以下代码
foreach($val in $data) {
$processname = $val.ProcessName
$processname = $val.Owner
$processname = $val.PrivilegedProcessorTime
$processname = $val.UserProcessorTime
}
但我没有得到任何信息。任何人都可以帮助我如何获取单个流程数据的信息,以及ProperegedProcestime,TotalMilliseConds中的用户ProPersOrcestime数据。
您几乎在那里。只是分配结果 $data
:
$owners = @{}
gwmi win32_process |% {$owners[$_.handle] = $_.getowner().user}
$data = get-process | select processname,Id,PrivilegedProcessorTime,UserProcessorTime,@{l="Owner";e={$owners[$_.id.tostring()]}}
在第一个示例中,您填充了ForEach-Object
管道中的hashtable $owners
(别名%
(。而您在任何地方都不会填充$data
。