国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PowerShell > 正文

PowerShell實現獲取進程所有者

2020-10-29 20:59:19
字體:
來源:轉載
供稿:網友

適用于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]'
  }
  else
  {
    $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”。而且這樣的信息相對來說也沒有什么意義。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卫辉市| 黎川县| 沾益县| 绥化市| 咸丰县| 梓潼县| 勃利县| 临洮县| 龙海市| 宜兰县| 肥东县| 隆尧县| 苏尼特右旗| 靖西县| 泰宁县| 丰城市| 绵竹市| 山丹县| 三台县| 永丰县| 肇东市| 松桃| 盐亭县| 大兴区| 芦山县| 阿拉善左旗| 湟中县| 舞钢市| 花莲县| 原阳县| 安阳县| 泗洪县| 周口市| 遂宁市| 宁远县| 洛扎县| 广德县| 河北区| 古交市| 桂东县| 桐乡市|