【问题标题】:Windows Domain Account SID and SIDsWindows 域帐户 SID 和 SID
【发布时间】:2016-07-25 04:29:18
【问题描述】:

我在一些 JNI 库之上进行编码,我真的不知道他们是如何做到的,但是 lib 的输出是带有 sid 和 sids 的 windows 域用户信息......他们看起来如下图

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"

问题

  • 我可以在没有密码但只有用户的情况下获取信息 身份证?

  • 信息是否可变?

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

【问题讨论】:

    标签: active-directory passwords windows-server-2012 identifier sid


    【解决方案1】:

    我会试一试:

    我了解您使用的是 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($_)
        }
    

    我希望这会有所帮助。如果我能提供进一步的帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 2020-05-15
      • 2017-05-12
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      相关资源
      最近更新 更多