如何获取查看进程所有者的所有者ID和当前用户的SID

PowerShell实现获取进程所有者
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了PowerShell实现获取进程所有者,本文直接给出实现代码,需要的朋友可以参考下
适用于PowerShell 3.0或者和更高版本。
Get-Process 能够获取当前运行的所有进程的列表,但是它不会返回进程的所有者信息,如果在PowerShell查询进程的所有者信息,我们需要调用WMI服务。下面给出一个例子。
filter Get-ProcessOwner
&&$id = $_.ID
&&$info = (Get-WmiObject -Class Win32_Process -Filter "Handle=$id").GetOwner()
&&if ($info.ReturnValue -eq 2)
&&&&$owner = '[Access Denied]'
&&&&$owner = '{0}\{1}' -f $info.Domain, $info.User
&&$_ | Add-Member -MemberType NoteProperty -Name Owner -Value $owner -PassThru
荔非苔注:其实之前已经发布过类似的文章,但是今天旧事重提,是因为在这篇中原文作者使用了过滤器,没有使用函数,值得借鉴。
当进程对象传递给Get-ProcessOwner后,它会在原有的对象上追加一个“Owner”属性,默认这个属性是隐藏的。你可以使用Selec-Object让它显示。
PS& Get-Process -Id $pid | Get-ProcessOwner | Select-Object -Property Name, ID, Owner
Name&&&&&&&&&&&&&&&&&&& Id Owner
----&&&&&&&&&&&&&&&&&&& -- -----
powershell_ise&&&&&& 10080 TOBI2\Tobias
上面的过滤器函数也适用于多个对象:
PS& Get-Process | Where-Object MainWindowTitle | Get-ProcessOwner | Select-Object -Property Name, ID, Owner
Name&&&&&&&&&&&&&&&&&&& Id Owner&&&&&&&&&&&&&&&&&&&
----&&&&&&&&&&&&&&&&&&& -- -----&&&&&&&&&&&&&&&&&&&
chrome&&&&&&&&&&&&&& 13028 TOBI2\Tobias&&&&&&&&&&&&
devenv&&&&&&&&&&&&&& 13724 TOBI2\Tobias&&&&&&&&&&&&
Energy Manager&&&&&&& 6120 TOBI2\Tobias&&&&&&&&&&&&
ILSpy&&&&&&&&&&&&&&& 14928 TOBI2\Tobias&&&&&&&&&&&&
注意要查看所有进程的信息,你需要让PowerShell在管理员身份下运行。否则你只能看到所有者是你自己的进程,其它进程的所有者显示:“Access Denied”。而且这样的信息相对来说也没有什么意义。
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具Linux如何查看当前进程的ID_Linux教程_Linux公社-Linux系统门户网站
你好,游客
Linux如何查看当前进程的ID
来源:Linux社区&
作者:Linux
Linux如何查看当前进程的ID
$$表示当前进程的ID, $PPID表示当前进程的父进程的ID.
bash-3.2$ echo& $$13750bash-3.2$ echo $PPID13656bash-3.2$ ps -ef | grep 13750 & 0 06:09 pts/4& & 00:00:00 bashoracle & 0 06:34 pts/4& & 00:00:00 ps -eforacle & 0 06:34 pts/4& & 00:00:00 grep 13750上面的结果表示ps(pid=28981)和grep(pid=28982)的父进程是bash(pid=13750)。
顺便看看bash的父进程是谁? - ksh,即在ksh提示符下运行了bash。bash-3.2$ ps 13656& PID TTY& & & STAT& TIME COMMAND13656 pts/4& & S& & & 0:00 -ksh
相关资讯 & & &
& (08月09日)
& (08月01日)
& (07月31日)
& (08月09日)
& (07月31日)
& (07月31日)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款2010年11月 PHP大版内专家分月排行榜第二2010年10月 PHP大版内专家分月排行榜第二2010年7月 PHP大版内专家分月排行榜第二2009年8月 PHP大版内专家分月排行榜第二
2010年8月 PHP大版内专家分月排行榜第二
2010年7月 PHP大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。Unix进程的用户id,有效用户id与文件对应的所有者id,组id
进程对应的id:
1. 实际用户id(uid),即登陆机器或运行进程的id。标识我们是谁。
有效用户id(euid),该进程能访问哪些文件,检查有效用户id与文件的访问权限(所有者ID,组ID:所有者访问权限,组访问权限,其它访问权限),以判别进程是否能够访问该文件
3. 保存的设置用户id,由exec函数保存
当执行一个程序文件时,进程的有效用户ID通常就是实际用户ID,有效组ID通常是实际组ID。但是若程序文件被设置了特殊标志,其含义是"当执行此文件时,将进程的有效用户ID设置为文件所有者的用户ID",即该进程
具有该程序文件所有者的权限。
进程的权限是由有效用户id(euid)决定的,与实际用户id没关系,access函数较特殊,是按实际用户ID和实际组ID进行访问权限测试。
文件对应的id:
1. 文件所有者id
2. 文件所有组id
文件对应9个权限位:
(1)用户读、用户写、用户执行(即文件所有者u对文件的访问权限)
(2)文件组读、文件组写、文件组执行(即文件的组g对文件的访问权限)
(3)其它用户读、其它用户写、其它用户执行(即其它用户o对文件的访问权限)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 获取当前进程用户名 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信