Поиск ADSI с помощью PowerShell
Доброе утро. Я пытался собрать что-то включенное и выключенное в течение нескольких дней (это должно быть) просто с помощью PS, но я еще не смог во всем разобраться. Я пытаюсь искать и извлекать информацию из ADSI с помощью PS. Когда я использую следующее в консоли PS:
Get-ADObject "CN=OID,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com" -Properties *
Он возвращает свойства объекта, которым присвоены значения (что правильно), так что это работает. Но, что мне нужно, так это дети объекта объявления, поэтому я пытаюсь добавить Область поиска:
Get-ADObject "CN=OID,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com" -SearchScope OneLevel -Properties *
И я получаю сообщение об ошибке, сообщающее:
A positional parameter cannot be found that accepts argument "CN=OID,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com"
Итак, я попробовал другой подход:
[string]$strCrLf = "`r`n"
[string]$strDoubleQuote = '"'
$ChildObjects = @()
$ParentObject = ([ADSI]"LDAP://CN=OID,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com")
ForEach ($Child in $ParentObject.psBase.Children)
{
$ChildObjects += @("([ADSI]" + $strDoubleQuote + $Child.Path + $strDoubleQuote + ").distinguishedName" + $strCrLf)
}
$ChildObjects | ForEach-Object {
Invoke-Expression $_
}
Приведенное выше возвращает Различимое имя дочерних элементов, но как мне получить дополнительные свойства дочерних элементов, такие как DisplayName, Имя и При создании . Если я смогу это получить, то смогу поработать над тем, чтобы поместить все это в массив, который можно экспортировать в CSV-файл или что-то в этом роде. Нужно ли мне использовать что-то вроде LDAP вместо этого?