我想在我们的AD倾倒的OU(工作人员),以特定的格式
"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
另外,我不知道该如何用引号括文字和插入的名字和经理之间的箭头
感谢如果你能指出我在正确的方向
这是我的工作须藤代码到目前为止
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"
您可以使用
(Get-ADUser "CN=Sharon Doe,OU=Staff,DC=whatever,DC=local").DisplayName
来获取管理员的用户对象,并抓住DisplayName
而不是DN。
如果你不觉得有信心与工作计算性能 (见下文),你可以使用它里面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
语句过于不可读的,你总是可以做出泼洒与性能表:
$NameManager = @{
"Property" = @(
"Name"
@{
Label = "Manager"
Expression = {
Get-ADUser $_.Manager -Properties DisplayName |Select -Expand DisplayName
}
}
)
}
$Users | Select-Object @NameManager