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

问题描述 投票:0回答:2

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

从登录 ID 获取用户 SID(Windows XP 及更高版本)

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 时

获取WmiObject Win32_UserAccont

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

感谢您的帮助。

powershell windows-7
2个回答
4
投票

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

Win32_Account

Get-WMIObject -Class 'Win32_Account' -Filter 'name="LOCAL SERVICE"'

1
投票

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

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

结果是

"NT Authority\LocalService"
,这是众所周知的 SID,如默认 Windows NT 安装的 SID 值中所述,您可以在 Windows 操作系统中的众所周知的安全标识符中找到更多 SID。


编辑: 正如您在下面的屏幕截图中看到的,是的,dhcp 客户端正在以

"NT Authority\LocalService"

启动的会话中运行

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.