Назад | Перейти на главную страницу

Как получить (AD) запись пользователя LDAP по SID?

Учитывая SID пользователя или группы, как я могу найти принадлежащий ей объект LDAP?
Сервер LDAP - это Active Directory (Windows Server 2008).

Была бы полезна строка запроса LDAP.

Другой способ - отказаться от LDAP и использовать WMIC:

H:\>wmic useraccount where (sid = "S-1-5-21-1698188384-1693678267-1543859470-6637") get * /format:list    

AccountType=512
Caption=MYDOMAIN\quux
Description=some guy's account
Disabled=FALSE
Domain=MYDOMAIN
FullName=Some Guy
InstallDate=
LocalAccount=FALSE
Lockout=FALSE
Name=quux
PasswordChangeable=TRUE
PasswordExpires=FALSE
PasswordRequired=TRUE
SID=S-1-5-21-1698188384-1693678267-1543859470-6637
SIDType=1
Status=OK

Теперь у вас есть несколько атрибутов, по которым будет легко выполнять поиск через LDAP, если вам все еще нужно.

Я бы хотел, чтобы это было так просто, как:

dsget user "objectSID={thesid},CN=Users,DC=domain,DC=com" -samid

Но это не так; AD хранит objectSID в шестнадцатеричном формате.

Люди из serverfault написали несколько ответов, которые могут помочь:

Получение сведений о пользователе из Active Directory с помощью SID

Я вижу, что это старый, но вы можете сделать это в ADUC, перейдя в пользовательский поиск и щелкнув вкладку «Дополнительно».

Строка запроса LDAP: (objectSID = SID)

Замените «SID» на SID, который вы ищете.

Мне пришлось выполнить переводы из SID в имя и обратно в SID (для сторонних участников безопасности) в PowerShell, используя следующий код:

function Find_By_SID($SID) {

    //Searches Active Directory by SID
    //Returns NetBios Name 
    // Example output: CONTOSO\User1

    $account = New-Object Security.Principal.SecurityIdentifier("$SID")
    $netbios = $account.Translate([Security.Principal.NTAccount])

    return $netbios.Value

}

Это поиск по SID с использованием запроса LDAP. Например:

dsquery * domainroot -filter "(objectSid=S-1-5-21-blah-blah-blah-500)"

или, в PowerShell,

Get-ADuser -LDAPFilter '(objectSid=S-1-5-21-blah-blah-blah-500)'

получит учетную запись администратора домена, если вы укажете значение своего домена для blah-blah-blah.