Cra*_*893 4 powershell active-directory
我正在尝试将 AD 中的 OU(员工)转储为特定格式
"name" -> "Manager";
Run Code Online (Sandbox Code Playgroud)
我正在专注,但我用下面的代码碰壁了
get-aduser -filter * -SearchBase "OU=Staff,DC=whatever,DC=local" | get-aduser -Properties Manager | Select Name,Manager
Run Code Online (Sandbox Code Playgroud)
经理的输出返回为:
CN=Sharon Doe,OU=Staff,DC=whatever,DC=local
Run Code Online (Sandbox Code Playgroud)
我也不确定如何将文本用引号括起来并在名称和经理之间插入箭头
谢谢你能指出我正确的方向
到目前为止,这是我的 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"
Run Code Online (Sandbox Code Playgroud)
Mat*_*sen 11
您可以使用
\n\n(Get-ADUser "CN=Sharon Doe,OU=Staff,DC=whatever,DC=local").DisplayName\nRun Code Online (Sandbox Code Playgroud)\n\n获取经理的用户对象并获取 DNDisplayName而不是 DN。
如果您对使用计算属性没有信心(见下文),您可以在foreach循环中使用它:
$Users = Get-ADUser -filter * -SearchBase "OU=Staff,DC=whatever,DC=local" -Properties Manager \n\nforeach($User in $Users){\n $Manager = Get-ADUser $User.Manager -Properties DisplayName\n $ManagerName = $Manager.Displa\xc3\xbdName\n\n "$($User.Name) -> $ManagerName"\n}\nRun Code Online (Sandbox Code Playgroud)\n\n您还可以在使用时在计算属性中使用它Select-Object:
$Users = Get-ADUser -filter * -SearchBase "OU=Staff,DC=whatever,DC=local" -Properties Manager \n$Users | Select Name,@{label="Manager";expression={(Get-ADUser $_.Manager -Properties DisplayName).DisplayName}}\nRun Code Online (Sandbox Code Playgroud)\n\n如果该Select声明变得太难以阅读,您可以随时进行泼溅以下属性
$NameManager = @{\n "Property" = @(\n "Name"\n @{\n Label = "Manager"\n Expression = {\n Get-ADUser $_.Manager -Properties DisplayName |Select -Expand DisplayName\n }\n }\n )\n}\n\n$Users | Select-Object @NameManager\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
49058 次 |
| 最近记录: |