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($_)
}
我希望这有助于。让我知道我是否可以进一步协助。