powershell
  • windows-7
  • 2012-08-02 64 views 1 likes 
    1

    我發現這個片斷SO:如何使用Powershell獲取本地NT服務SID?

    Get User SID From Logon ID (Windows XP and Up)

    Function GetSIDfromAcctName() 
    { 
    $myacct = Get-WmiObject Win32_UserAccount -filter "Name = '$env:USERNAME " 
    write-host Name: $myacct.name 
    Write-Host SID : $myacct.sid 
    } 
    

    不過,這並不表明一切。

    例如,我只想要「nt service \ dhcp」的sid。我怎麼弄到的?當我與

    GET-WmiObject可以Win32_UserAccont

    手動運行PowerShell的我,我得到的所有用戶,但有隻有三個「普通」用戶。沒有任何「特殊」nt服務用戶。

    感謝您的幫助。

    回答

    1

    如果您想了解下,一個服務啓動帳戶的名稱,你可以使用:

    gwmi Win32_service -Filter "name='dhcp'" | % {return $_.startname} 
    

    結果是"NT Authority\LocalService"這是discribed在SID Values For Default Windows NT Installations一個衆所周知的SID,你會發現更多SID在Well-known security identifiers in Windows operating systems


    編輯: 正如你可以在下面的截圖中看到,對DHCP客戶端的會話中運行開始作爲"NT Authority\LocalService"

    enter image description here

    +0

    你告訴我,DHCP是真正的localservice? – johnny 2012-08-02 21:58:30

    +0

    是的dhcp在localservice會話下運行。 – JPBlanc 2012-08-03 03:29:31

    1

    要獲得內置帳戶,你需要另一個WMI類:Win32_Account

    gwmi -class win32_account -Filter 'name="LOCAL SERVICE"' 
    
    相關問題