小编Gho*_*olf的帖子

powershell 递归检索组成员

我有一个非常大的审计项目,我希望能够自动化。

我需要获取属于某个组的每个用户的姓名、SamAccountName、Title 和 Department。问题是,该组中有组,而这些组中有组。另一个问题是,大约 99% 的组的显示名称(不是 SamAccountName)中有一个星号。

这是我目前拥有的代码,它工作正常,直到它收到一个名称中带有星号的组..(因此是 .Replace("*","") 部分......任何人都知道如何修复这个?

function Get-NestedGroupMember {
[CmdletBinding()] 
param(
    [Parameter(Mandatory)] 
    [string]$Group 
)
$broke = @();
## Find all members  in the group specified 
$members = Get-ADGroupMember -Identity $Group 
foreach ($member in $members){
    ## If any member in  that group is another group just call this function again 
    if ($member.objectClass -eq 'group'){
        $memberGroup = $($member.Name).Replace("*", "")
        try{
            Get-NestedGroupMember -Group "$($memberGroup)"
        }catch{
            $broke += "$($memberGroup)`n"
        }
    }else{
        ## otherwise, just  output the non-group object (probably a …
Run Code Online (Sandbox Code Playgroud)

powershell active-directory powershell-3.0

2
推荐指数
1
解决办法
3060
查看次数