如何使用Powershell获取本地NT服务SID?

时间:2012-08-02 19:31:15

标签: powershell windows-7

我在SO上找到了这个片段:

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。我怎么能得到它?当我用

手动运行PowerShell时

Get-WmiObject Win32_UserAccont

我得到了所有用户,但只有三个“常规”用户。没有“特殊”的nt服务用户。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

要获取内置帐户,您需要另一个WMI类:Win32_Account

gwmi -class win32_account -Filter 'name="LOCAL SERVICE"'

答案 1 :(得分:1)

如果您想知道启动服务的帐户名称,可以使用:

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

结果为"NT Authority\LocalService",这是SID Values For Default Windows NT Installations中所述的众所周知的SID,您会在Well-known security identifiers in Windows operating systems中找到更多SID。


编辑: 正如您在下面的屏幕截图中看到的那样,是的,dhcp客户端正在以"NT Authority\LocalService"开始的会话中运行

enter image description here