PowerShell Active Directory列出所有多值属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerShell Active Directory列出所有多值属性相关的知识,希望对你有一定的参考价值。
不确定我是否在这里追逐野鹅但是根据主题,我需要获得一个AD属性列表,对于用户对象类,它是多值的。
例如,proxyAddresses交换特定属性是多值的,其中extensionAttribute *仅接受单个字符串。
我们使用了一个高度自定义的模式,虽然我可以浏览每个属性文档,但我宁愿通过PowerShell获取上述属性的列表。
我尝试过使用ldp.exe但无法获得所需的结果,并且想知道是否有办法通过PowerShell或.Net托管代码执行此操作。
提前感谢任何帮助/指针。
因此,您必须查询目录的Schema部分并查找objectClass attributeSchema
和属性isSingleValued
(FALSE)。区别名称wichh不变的部分是:CN=Schema,CN=Configuration
。
首先尝试使用CSV:
csvde -f MultivaluedAttributes.csv -d CN=Schema,CN=Configuration,DC=MySubdomain,DC=MyDomain,DC=com -r "(&(objectclass=attributeSchema)(isSingleValued=FALSE))" -l lDAPDisplayName
这是powershell代码。
# LDAPSchemaQuery.PS1
try
{
$dn = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://179.22.21.01/CN=Schema,CN=Configuration,DC=MyDomain,DC=MyExt","MyUser", 'MyPassword')
# Query into the Schema
# csvde -f MultivaluedAttributes.csv -d CN=Schema,CN=Configuration,DC=office,DC=coyotesystems,DC=com -r "(&(objectclass=attributeSchema)(isSingleValued=FALSE))" -l lDAPDisplayName
$Rech = new-object System.DirectoryServices.DirectorySearcher($dn)
#$Rech.filter = "(&(objectclass=user)(mail=*)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))"
$Rech.filter = "(&(objectclass=attributeSchema)(isSingleValued=FALSE))"
$Rech.SearchScope = "subtree"
$dumy=$Rech.PropertiesToLoad.Add("lDAPDisplayName")
$adAttributes = $Rech.findall()
foreach ($adAttribute in $adAttributes)
{
$multivaluedAttribute = try{$adAttribute.Properties["lDAPDisplayName"]}catch{""}
$multivaluedAttribute
}
}
catch
{
Write-Verbose "LDAPSchemaQuery : PB with $($adAttribute.Path)"
}
以上是关于PowerShell Active Directory列出所有多值属性的主要内容,如果未能解决你的问题,请参考以下文章
powershell PowerShell:列出Active Directory子网
powershell PowerShell:备份Active Directory组策略#PowerShell#ActiveDirecoty
powershell 使用powershell添加Active Directory组成员
powershell PowerShell:Active Directory中的操作系统计数