PowerShell实现获取进程所有者
适用于PowerShell3.0或者和更高版本。
Get-Process能够获取当前运行的所有进程的列表,但是它不会返回进程的所有者信息,如果在PowerShell查询进程的所有者信息,我们需要调用WMI服务。下面给出一个例子。
filterGet-ProcessOwner
{
$id=$_.ID
$info=(Get-WmiObject-ClassWin32_Process-Filter"Handle=$id").GetOwner()
if($info.ReturnValue-eq2)
{
$owner='[AccessDenied]'
}
else
{
$owner='{0}\{1}'-f$info.Domain,$info.User
}
$_|Add-Member-MemberTypeNoteProperty-NameOwner-Value$owner-PassThru
}
荔非苔注:其实之前已经发布过类似的文章,但是今天旧事重提,是因为在这篇中原文作者使用了过滤器,没有使用函数,值得借鉴。
当进程对象传递给Get-ProcessOwner后,它会在原有的对象上追加一个“Owner”属性,默认这个属性是隐藏的。你可以使用Selec-Object让它显示。
PS>Get-Process-Id$pid|Get-ProcessOwner|Select-Object-PropertyName,ID,Owner
Name IdOwner ---- ------- powershell_ise 10080TOBI2\Tobias
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语