此数据的格式是什么 - CSVDE 导出 - Active Directory

问题描述 投票:0回答:1

我在这里不知所措。我正在尝试理解 CSVDE 及其工作原理。当我为我的应用程序导出用户时,我需要确保获得 objectSID。当我运行 CSVDE 时,我得到以下 objectSID:

X'010500000000000515000000f3d2d24f8dce0c921ba52c8f97040000'

当我使用 powershell 并转储同一用户时,我将其作为 objectSID

150000052100024321021079141206121462716544143151400

显然,这些不是同一串字符。我需要某种方法从 Active Directory 转储用户并获取 X'010500000000000515000000f3d2d24f8dce0c921ba52c8f97040000' 格式的 objectSID,而不使用 CSVDE。

有人以前见过这个吗?你们有什么可以帮助我解决这个问题的吗?我以为我可以获取 Powershell 输出,然后将其转换,但我不知道该数据是什么格式。我看到有人说 CSVDE 输出是二进制的(但事实并非如此),我看到有人说它是十六进制(我不这么认为)。所以我很茫然。

任何人都可以透露一些信息吗?

powershell active-directory csvde
1个回答
0
投票

我没有解决方案,但我可以告诉你这两种表示方式如何相互关联:

X'010500000000000515000000f3d2d24f8dce0c921ba52c8f97040000'

'...'
内的字符串是一个“十六进制字节字符串”,由
0
左填充的字节值的2个十六进制数字表示形式组成。

您可以将其转换为

[byte[]]
数组,如下所示:

[byte[]] $bytes = 
  "X'010500000000000515000000f3d2d24f8dce0c921ba52c8f97040000'" `
  -replace "^X'|'$" `
  -split '(..)' -ne '' -replace '^', '0x'

150000052100024321021079141206121462716544143151400

上面是 - 由于不明确而无用 - 来自原始字符串没有填充的十进制字节值的字符串化,通过以下方式获得:

-join $bytes
© www.soinside.com 2019 - 2024. All rights reserved.