首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ForeignSecurityPrincipals中将distinguishedName解析为PowerShell

在ForeignSecurityPrincipals中将distinguishedName解析为PowerShell
EN

Stack Overflow用户
提问于 2018-02-15 14:07:12
回答 1查看 2.4K关注 0票数 1

我有一个ForeignSecurityPrincipals,需要将它解析为distinguishedName,但不确定如何解决。

我有这个代码来获取NTAccount

代码语言:javascript
复制
$m = "CN=S-1-1-11-1111111111-1111111111-1111111111-1111111,CN=ForeignSecurityPrincipals,DC=one,DC=two,DC=company,DC=com"
$member = [ADSI]("LDAP://" + $m)
$sid = New-Object System.Security.Principal.SecurityIdentifier ($member.objectSid[0], 0)
$sid.Translate([System.Security.Principal.NTAccount]).value
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-16 14:43:43

可以使用SID绑定到对象(然后获取distinguishedName),但至少必须知道域的DNS名称:

代码语言:javascript
复制
$user = [ADSI]"LDAP://$domaindns/<SID=$($sid.Value)>"

要获取域的DNS名称,您需要检查域所具有的所有信任,并将DNS名称和域的SID存储在列表中。然后,您可以将用户SID的域部分与您的列表匹配,并获得DNS名称(用户的SID将以域的SID开始)。

此页有一些关于提取所有信任的信息,但是他最后使用的方法是WMI,这可能不起作用,这取决于您的权限。不是为了我。你也可以对ADSI做同样的事,但我还没做过。至少这是个起点。

更新:

你可以试试这个:

代码语言:javascript
复制
$DomainSIDList = @{}

$Forest = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()

#Get trusts from each domain in the forest -- this will include forest trusts
ForEach($Domain in $Forest.Domains) {
    $adsisearcher = New-Object system.directoryservices.directorysearcher
    $adsisearcher.SearchRoot = [ADSI]"LDAP://CN=System,$($Domain.GetDirectoryEntry().distinguishedName)"
    $adsisearcher.Filter = "(objectclass=trustedDomain)"
    ForEach($ExtDomain in $adsisearcher.FindAll()) {
        $name = $ExtDomain.Properties["name"][0]
        "Found $($name)"
        $sid = New-Object System.Security.Principal.SecurityIdentifier ($ExtDomain.Properties["securityidentifier"][0], 0)
        if (-not $DomainSIDList.Contains($sid.Value)) {
            "Adding $($sid.Value), $($name)"
            $DomainSIDList.Add($sid.Value, $name)
        }
    }
}

一旦运行,$DomainSIDList将包含受信任域的列表。它将包含森林中的所有域,您并不真正需要这些域,但这并不是什么大问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48809201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档