【问题标题】:How do I get a local NT Service SID using Powershell?如何使用 Powershell 获取本地 NT 服务 SID?
【发布时间】:2012-08-03 14:50:51
【问题描述】:

我在 SO 上找到了这个 sn-p:

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 服务用户。

感谢您的帮助。

【问题讨论】:

    标签: powershell windows-7


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      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" 启动的会话中运行

      【讨论】:

      • 你是在说 dhcp 真的是本地服务?
      • 是的 dhcp 正在本地服务会话下运行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多