1

我正在編寫一些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 ......我想只有一個安全標識符。

回答

0

我將它取刺:

據我所知,您使用的是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($_) 
    } 

我希望這有助於。讓我知道我是否可以進一步協助。