powershell
  • windows-7
  • 2012-08-02 34 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"' 
    
    相关问题