返回经理的用户samacountname

use*_*303 4 powershell active-directory

我需要从AD创建包含所有活动用户的CSV文件,包括行管理器属性,但是我需要行管理器sAMAccountName,而不是cn.这是我到目前为止:

Get-ADUser -server server_ip -Filter { mail -like "*" -and ObjectClass -eq "user" } `
  -SearchBase "OU=Active Users,DC=eu,DC=ad,DC=some_company,DC=com" `
  -Properties objectGUID,displayName,office,division,department,employeeNumber,
    employeeID,mobilePhone,officePhone,ipphone,title,givenName,surname,mail,
    manager,sAMAccountName |
  Export-CSV "EU_AD_Properties.csv"
Run Code Online (Sandbox Code Playgroud)

这将返回我想要的所有数据,但是给了我直线管理器cn,而不是samacountname.

有任何想法吗?

我试过这个:

Get-ADUser -server server_ip -Filter { mail -like "*" -and ObjectClass -eq "user" } `
  -SearchBase "OU=Active Users,DC=eu,DC=ad,DC=some_company,DC=com" `
  -Properties objectGUID,displayName,office,division,department,employeeNumber,
    employeeID,mobilePhone,officePhone,ipphone,title,givenName,surname,mail,
    @{Label="Manager";Expression={(Get-aduser -filter {sAMAccountName -eq $_.Manager}.sAMAaccountName)}},
    sAMAccountName |
  Export-CSV "EU_AD_Properties.csv"
Run Code Online (Sandbox Code Playgroud)

然而,这错误了.

Bil*_*ill 9

在这里你是$ user是你正在查询经理信息的用户

(get-aduser (get-aduser $user -Properties manager).manager).samaccountName
Run Code Online (Sandbox Code Playgroud)


Ans*_*ers 7

您无法在参数的-Properties参数中创建自定义属性,因为当前对象变量$_在该点不包含值(或者至少不包含您想要的值).select$_实际保存您需要处理的值时,您需要在管道中稍后的语句中执行此操作.您尝试创建自定义属性的方式也不起作用:

@{Label="Manager";Expression={(Get-aduser -filter {sAMAccountName -eq $_.Manager}.sAMAaccountName)}}
Run Code Online (Sandbox Code Playgroud)

过滤器脚本块没有属性sAMAccountName.你真正想要做的是获取经理CN的用户对象并检索其sAMAccountName属性:

@{Label='Manager';Expression={(Get-ADUser $_.Manager).sAMAccountName}}
Run Code Online (Sandbox Code Playgroud)

此外,您不需要过滤器ObjectClass -eq "user",因为Get-ADUser无论如何都只返回用户对象.

所以你的管道应该看起来像这样:

Get-ADUser -Server IP -Filter {mail -like "*"} -Properties * `
    -SearchBase "OU=Active Users,DC=eu,DC=ad,DC=some_company,DC=com" |
  select objectGUID, displayName, office, division, department, employeeNumber,
    employeeID, mobilePhone, officePhone, ipphone, title, givenName, surname,
    mail, @{Name='Manager';Expression={(Get-ADUser $_.Manager).sAMAccountName}},
    sAMAccountName |
  Export-CSV "EU_AD_Properties.csv"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的解释,但这里有一个错字; 它应该是Expression = {(Get-ADUser $ _.Manager).sAMAccountName.使用错误的名称,它将返回一个空字符串. (2认同)