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
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下