Доброе утро. Я пытался собрать и выключить что-то в течение нескольких дней (что должно быть) просто с помощью PS, но я пока не смог понять все это. Я пытаюсь найти и получить информацию из ADSI с помощью PS. Когда я использую следующее в консоли PS:
Get-ADObject "CN=OID,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com" -Properties *
Он возвращает свойства объекта, которым назначены значения (что является правильным), чтобы это работало. Но мне нужны дочерние элементы объекта AD, поэтому я пытаюсь добавить SearchScope:
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, Name и whenCreated. Если я могу получить это, то я могу работать над помещением всего этого в массив, который может быть экспортирован в файл CSV или что-то еще. Мне нужно использовать что-то вроде LDAP вместо этого?