我在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服务用户。
感谢您的帮助。
答案 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"
开始的会话中运行