Моя цель - извлечь опубликованный CRL CA из соединения LDAP. У меня есть функция для поиска в LDAP (не в Active Directory!), Которая возвращает System.DirectoryServices.Protocols.SearchResultEntryCollection
, как и ожидалось.
$results = LDAPsearch "$_LDAP_server`:$_LDAP_searchPort" "cn=$CA,$_LDAP_searchBase" '(&(certificateRevocationList=*))'
ForEach ($element in $results){
$element.Attributes['cn'].GetValues('string')
$element.Attributes['certificateRevocationList;binary'].GetValues('string')
}
Приведенное выше правильно читает значение атрибута cn
каждого возвращаемого элемента, однако certificateRevocationList
возвращается в странном формате, который совсем не соответствует ожидаемой мной строке Base64 (например, той, которую можно прочитать, если вы экспортируете свои данные в файл LDIF или если вы используете команду Linux ldapsearch). ..
Как я могу получить фактическое значение Base64?
К сожалению, вы можете передать только 'byte []' или 'string' в качестве параметра методу GetValues (опция 'Base64String') здесь было бы полезно для меня, но хорошо ...).
Токовый выход ниже (где cn
значение написано правильно, но не certificateRevocationList
):