PowerShell 列出具有经理的组中的用户,但无法格式化经理字段

PowerShell List users in groups with managers but cannot format manager field

我是从头开始写的,所以如果有更好的方法,请多多指教。

我试图通过对 AD 组名称使用通配符来列出来自多个 AD 组的所有用户,并包含每个用户的信息,包括他们的经理。 这行得通,但我不知道如何更好地格式化经理字段;它 return 是完整的 DN。 我试过:

如何更好地格式化经理字段,或return 经理姓名开头? 最终数据实际上正在导出到 CSV 中,因此格式正确。

谢谢, 码头

Clear-Host

$FilterToUse = "grp-Servers-Win-"

$FilterToUse2 = $FilterToUse + "*"
$Groups = Get-ADGroup -filter {name -like $FilterToUse2}
$headers = "GroupName,Network ID,Name,UserType,Check"
Write-Host $headers

ForEach ($Group in $Groups) {
    Get-ADGroupMember $group | ForEach-Object {
        $mgr = Get-ADUser $_.samaccountname -Properties manager | Select -Property manager
        #$mgr = Get-ADUser $_.samaccountname -Properties manager | Select @{label='ad-manager';expression={$_.manager -replace '^CN=|,.*$'}}

        if ($_.samaccountname -like "ZZZ*") {
            Write-host ($Group.Name + "," + $_.samaccountname + "," + $_.name + "," + $_.objectclass + ",CatA," + $mgr)
            }
        elseif ($_.samaccountname -like "YYY*") {
            Write-Host ($Group.Name + "," + $_.samaccountname + "," + $_.name + "," + $_.objectclass + ",CatB," + $mgr)
        }
        elseif ($_.samaccountname -like "XXX*") {
            Write-Host ($Group.Name + "," + $_.samaccountname + "," + $_.name + "," + $_.objectclass + ",CatC," + $mgr)
        }
        else {
            Write-Host ($Group.Name + "," + $_.samaccountname + "," + $_.name + "," + $_.objectclass + ",check," + $mgr)
        }
    }
    }

根据上面的评论,但为了更简单地解释发生了什么:

 $mgr = (Get-ADUser $_.samaccountname -Properties Manager | Select-Object Manager).Manager -replace '^CN=|,.*$'

 $mgr = (Get-ADUser $_.samaccountname -Properties Manager | Select-Object -ExpandProperty Manager) -replace '^CN=|,.*$'