首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取ADSI对象用户的域名?

获取ADSI对象用户的域名?
EN

Stack Overflow用户
提问于 2015-09-19 06:58:21
回答 1查看 2.4K关注 0票数 2

在下面的脚本中,它将打印组的所有用户。但是,是否缺少域名(某些用户在不同的Windows域中)?

代码语言:javascript
复制
$computer = [ADSI]"WinNT://$server,computer"

$computer.psbase.children | ? { 
    $_.psbase.schemaClassName -eq 'group'
} | % {
    $gn = $_.name.ToString()
    write-host $gn

    write-host "------"
    $group =[ADSI]$_.psbase.Path
    $group.psbase.Invoke("Members") | % {
        $_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)
    } 
}
EN

回答 1

Stack Overflow用户

发布于 2017-04-25 14:24:21

我们有一个类似的问题,在计算机上有来自不同领域的帐户,我们需要域名回来。不幸的是,SID提取不能工作,我认为本地帐户和在某些情况下计算机被加入的域,所以它没有返回所有的结果。

这是我为我们找到的最好的解决方案:

代码语言:javascript
复制
Admin = $_.GetType().InvokeMember("AdsPath", 'GetProperty', $null, $_, $null)

将返回类似的结果

代码语言:javascript
复制
WinNT://#domain#/#account#

WinNT://#domain of computer#/#computer-name#/#account#

地方帐户

代码语言:javascript
复制
$servers= get-content 'C:\temp\work\localadmins\serverlist_in.txt'
$output = 'C:\temp\work\localadmins\serverlist_out.csv' 
$results = @()

foreach($server in $servers)
{
    $admins = @()
    $group =[ADSI]"WinNT://$server/Administrators" 
    $members = @($group.psbase.Invoke("Members"))
    $members | foreach {
       $obj = new-object psobject -Property @{
           Server = $Server
           Admin = $_.GetType().InvokeMember("AdsPath", 'GetProperty', $null, $_, $null)
       }
       $admins += $obj
    } 
    $results += $admins
}
$results | Export-csv $Output -NoTypeInformation
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32665284

复制
相关文章

相似问题

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