用Powershell查找一个用户属于哪些组(Memberof)

最近有个客户需要查看他们服务的Security Group都在哪些组下。

实际上他要查询的这个Security Group是跨域的,直接在跨域的情况下是直接查看memberof属性是空的

由于对powershell命令的不熟悉,写了如下脚本暂时解决了这个问题,但是。。效率超低。

今天和同事碰头,结果他用一条命令搞定了。但是有局限性,如果有兴趣的可以大家一起讨论。


我在这里贴出我写的代码:

$groups=get-adgroup -Filter ‘GroupCategory -eq "Security" -and GroupScope -eq "DomainLocal"‘ | select samaccountname -ExpandProperty samaccountname


foreach($group in $groups)

{

    

    

    try

    {

       $members=Get-ADGroupMember -Identity $group

    }

    catch [System.Exception]

    {

        Write-Host "the Error Group name is $group" -ForegroundColor Red

    }

    

    foreach($m in $members)

    {

        if($m.SamAccountName -like "*dest_SG_name*")

        {

           write-host  $group

        }

    }

}


同事的代码:

Get-ADPrincipalGroupMembership smtpazure


局限性在于, get-adprincipalGroupMembership 目前我测试只能获取域内的memberof属性。并不能达到要求,如果有其他方法可以获取跨域的memberof属性,请大家帮助一起实现,谢谢!

本文出自 “Richier” 博客,请务必保留此出处http://richier.blog.51cto.com/1447532/1629757

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。