【问题标题】:How to get NT Account from the SID using PowerShell如何使用 PowerShell 从 SID 获取 NT 帐户
【发布时间】:2016-01-13 22:57:34
【问题描述】:

在处理another 问题的过程中,我发现我需要为NT AUTHORITY\Network Service 帐户获取本地化 帐户名(&¤%@ 是谁对帐户名进行了本地化? ?).

我有一个涉及运行一些 VBScript 代码的解决方法,但由于我的项目的其余部分在 Powershell 中,我认为将此代码转换为 Powershell 是“正确的”(所以我不需要从我的 Powershell 调用 VBScript,我不知道该怎么做……)。

知道这是做什么的,以及在 Powershell 中是如何完成的吗?

Set objWMI = GetObject ("winmgmts:root\cimv2")
Set objSid = objWMI.Get ("Win32_SID.SID='S-1-5-20'")
Set MyDomain = objSid.ReferencedDomainName
Set MyAccount = objSid.AccountName

【问题讨论】:

    标签: powershell vbscript migration


    【解决方案1】:

    这样的事情应该可以解决问题;

    $objSID = New-Object System.Security.Principal.SecurityIdentifier("S-1-5-20") 
    $objAccount = $objSID.Translate([System.Security.Principal.NTAccount]) 
    $objAccount.Value
    

    输出:

    NT AUTHORITY\网络服务

    如果您想要更多控制权,您可以坚持使用 WMI 方法并执行类似的操作;

    $acc = ([wmi]"Win32_SID.SID='S-1-5-20'")
    $name = $acc.AccountName
    $domain = $acc.ReferencedDomainName
    
    $domain
    $name
    "{0}\{1}" -f $domain, $name
    

    输出:

    新台币管理局 网络服务 NT AUTHORITY\网络服务

    这样,您现在拥有组成 NT 帐户名称的两个组件,与上述脚本相同。

    此方法可能最接近您的原始示例。

    【讨论】:

    • 太棒了!它奏效了,我非常感激。 :-D
    猜你喜欢
    • 1970-01-01
    • 2020-11-12
    • 2010-09-20
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多