我需要在用户属性中写入大约 1000 - 5000 个字符,但我不想编辑架构 rangeUpper 属性,或者只是为了我的目的而创建一个。
我应该如何研究可以为此重新利用哪些用户属性?换句话说,如何导出 AD 用户可用的所有属性以及相应的 rangeUpper 值?
答案1
以下 PowerShell 将查看架构的用户类别,抓住它的allowedAttributes
属性,然后查找每个属性的定义并返回其rangeUpper
价值。
# Need the Microsoft AD PS module
Import-Module ActiveDirectory
# Get the user class definition, include "allowedAttributes"
$userClass = Get-ADObject -SearchBase ((Get-ADRootDSE).schemaNamingContext) -Filter { Name -eq "User" } -Properties allowedAttributes
# Walk the allowedAttributes array and sort into a table with "name" and "rangeUpper"
$userClass.allowedAttributes |
ForEach-Object { Get-ADObject -SearchBase ((Get-ADRootDSE).schemaNamingContext) -Filter { LDAPDisplayName -eq $_ } -Property rangeUpper } |
Sort-Object Name |
Format-Table -Property Name, rangeUpper
# If you want to only see defined "rangeUpper" values
$userClass.allowedAttributes |
ForEach-Object { Get-ADObject -SearchBase ((Get-ADRootDSE).schemaNamingContext) -Filter { LDAPDisplayName -eq $_ } -Property rangeUpper } |
Where-Object { $_.rangeUpper } |
Sort-Object Name |
Format-Table -Property Name, rangeUpper