我正在尝试将AD中的OU(Staff)转储为特定格式
"name" -> "Manager";
我正在进入,但我正在使用以下代码进入墙壁
get-aduser -filter * -SearchBase "OU=Staff,DC=whatever,DC=local" | get-aduser -Properties Manager | Select Name,Manager
经理的输出返回为:
CN=Sharon Doe,OU=Staff,DC=whatever,DC=local
另外,我不确定如何在引号中包装文本并在名称和管理器之间插入箭头
谢谢你能指出我正确的方向
到目前为止,这是我的sudo工作代码
Import-Module ActiveDirectory
$users = $null
$i = $null
$users = Get-ADUser -SearchBase "ou=Staff,dc=whatever,dc=local" -filter * ` -property description
ForEach($user in $users)
{
$user.name + >>>Get-ADUser($users.manager).name**<<<
$i++
}
"$i users"
答案 0 :(得分:4)
您可以使用
(Get-ADUser "CN=Sharon Doe,OU=Staff,DC=whatever,DC=local").DisplayName
获取经理的用户对象并抓取DisplayName
而不是DN。
如果您对使用calculated properties(见下文)感到自信,可以在foreach
循环中使用它:
$Users = Get-ADUser -filter * -SearchBase "OU=Staff,DC=whatever,DC=local" -Properties Manager
foreach($User in $Users){
$Manager = Get-ADUser $User.Manager -Properties DisplayName
$ManagerName = $Manager.DisplaýName
"$($User.Name) -> $ManagerName"
}
使用Select-Object
时,您也可以在计算属性中使用它:
$Users = Get-ADUser -filter * -SearchBase "OU=Staff,DC=whatever,DC=local" -Properties Manager
$Users | Select Name,@{label="Manager";expression={(Get-ADUser $_.Manager -Properties DisplayName).DisplayName}}
如果Select
语句太难以理解,您可以随时创建一个包含属性的splatting表:
$NameManager = @{
"Property" = @(
"Name"
@{
Label = "Manager"
Expression = {
Get-ADUser $_.Manager -Properties DisplayName |Select -Expand DisplayName
}
}
)
}
$Users | Select-Object @NameManager