Windows域帐户SID和SID

问题描述:

我正在编写一些JNI库的顶部,我真的不知道他们是如何做的细节,但lib的输出是Windows域用户信息与sid和小岛屿发展中国家......他们看起来如下图所示Windows域帐户SID和SID

sids: [ 
    "S-1-5-21-2923429462-2395316905-2569861443-1123", 
    "S-1-5-32-545", 
    "S-1-5-2", 
    "S-1-5-5-0-79699478", 
    "S-1-5-11", 
    "S-1-1-0", 
    "S-1-5-15", 
    "S-1-18-1", 
    "S-1-5-21-2923429462-2395316905-2569861443-513" 
], 

sid: "S-1-5-21-2923429462-2395316905-2569861443-1123" 

问题

  • 我能得到的信息,而无需输入密码,但只有与用户 ID?

  • 信息是否可更改?

  • 什么是SID ......我想只有一个安全标识符。

我将它取刺:

据我所知,您使用的是Java本地接口,但是我不知道你正在使用的另一种语言。如果是在Active Directory中,Powershell对于它来说是完美的,但我不确定它如何与JNI协同工作。

无论如何,这里是我可以收集的。每个帐户都有一个特定的安全标识符,称为SID。有一些常见帐户的众所周知的SID(例如管理员)。即使本地帐户和组也具有SID,就像Active Directory中的任何帐户一样。

如果要将SID转换为帐户,那不是问题。如果你不使用PowerShell的,至少这可能会给你一个起点:

$SID = New-Object System.Security.Principal.SecurityIdentifier("SID_GOES_HERE") 
$user = $SID.Translate([System.Security.Principal.NTAccount]) 
$user.Value 

您可以通过把它变成一个功能,像这样互相喂线进入这3个步骤:

Function SIDtoUser($SIDint) { 
    $SID = New-Object System.Security.Principal.SecurityIdentifier($SIDint) 
    $user = $SID.Translate([System.Security.Principal.NTAccount]) 
    return $user.Value 
    } 

将所有SID收集到一个阵列中并像这样运行:

$SIDArray | %{ 
    SIDtoUser($_) 
    } 

我希望这有助于。让我知道我是否可以进一步协助。