如何使用 PowerShell 脚本在单个报告中获取 AD 用户和管理员详细信息

问题描述 投票:0回答:1

$a 包含用户详细信息,例如(名称,samaccountname,empid,经理等),$b 包含经理详细信息,例如(名称,employeeID),我不知道如何在 csv 文件中获取这些详细信息

预期产出

username samaccountname empid managername manageremployeeID
abc       a.bc          1234  xyz         5678

代码:

$a=Get-aduser -identity "abc" -properties * |select name,samaccountname,empid,manager
$b=Get-aduser -identity $a.manager -properties * | select name,empid**

我同时得到了 $a 和 $b,但我想在一个 csv 文件中同时得到 $a 和 $b,但我没能做到。

请帮忙

powershell merge active-directory
1个回答
1
投票

使用循环和

PSCustomObject
创建一个具有所查询用户与其 Manager 的连接属性的单个对象:

Get-ADUser 'abc' -Properties empid, manager | ForEach-Object {
    $manager = $null
    try {
        $manager = Get-ADUser $_.manager -Properties empid
    }
    catch {
        Write-Warning $_
    }

    [pscustomobject]@{
        name                  = $_.name
        samaccountname        = $_.samaccountname
        empid                 = $_.empid
        managerSamaccountname = $manager.samaccountname
        managerEmpid          = $manager.empid
    } 
} | Export-Csv pathhere.csv -NoTypeInformation

顺便说一句,对于单个用户来说这并不重要,但如果你要为许多用户执行此操作,请尽量避免使用

-Properties *
,查询所有用户的属性非常低效,你应该始终添加属性您需要如上例所示。本例中不包含
name
samaccountname
,因为这两个属性均由
Get-ADUser
默认返回。

© www.soinside.com 2019 - 2024. All rights reserved.