gpt4 book ai didi

powershell - PowerShell Active Directory列出所有多值属性

转载 作者:行者123 更新时间:2023-12-02 23:54:20 26 4
gpt4 key购买 nike

不知道我是否在这里追逐野鹅,但是根据主题,我需要获取用户属性Classed的AD属性列表。

例如,proxyAddresses交换特定的属性是多值的,其中extensionAttribute *仅接受单个字符串。

我们使用了高度自定义的架构,尽管我可以浏览每个属性文档,但还是希望通过PowerShell获得上述属性的列表。

我曾尝试使用ldp.exe,但无法获得预期的结果,并且想知道是否有办法通过PowerShell或.Net托管代码来执行此操作。

在此先感谢您的帮助/指针。

最佳答案

因此,您必须查询目录的Schema部分,并查找objectClass attributeSchema和属性isSingleValued(FALSE)。 distinguichName的一部分是不变的: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 - PowerShell Active Directory列出所有多值属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49128454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com