【发布时间】:2020-07-27 02:28:25
【问题描述】:
我的目标是从 LDAP 连接中获取 CA 的已发布 CRL。
我有一个搜索 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 不正确):
【问题讨论】:
标签: powershell ldap base64 pki tobase64string