Powershell Can';找不到计算机';s唯一ID AD属性

Powershell Can';找不到计算机';s唯一ID AD属性,powershell,active-directory,Powershell,Active Directory,我想从Active Directory用户和计算机获取“计算机的唯一ID”属性 计算机唯一ID的值为4C4544-0039-5310-8031-B9C04F393253 我有以下代码: $endpoint = "someEndpoint" $directorySearcher = New-Object System.DirectoryServices.DirectorySearcher $directorySearcher.PageSize = 100 $directorySearcher.Se

我想从Active Directory用户和计算机获取“计算机的唯一ID”属性

计算机唯一ID的值为
4C4544-0039-5310-8031-B9C04F393253

我有以下代码:

$endpoint = "someEndpoint"
$directorySearcher = New-Object System.DirectoryServices.DirectorySearcher
$directorySearcher.PageSize = 100
$directorySearcher.SearchScope = [System.DirectoryServices.SearchScope]::Subtree
$directorySearcher.Filter = "(&(objectCategory=computer)(cn=$endpoint)"

$result = $directorySearcher.FindOne()

$result.Properties["objectguid"] # {30 103 159 141 234 5 102 71 128 215 212 4 206 254 198 63}
# Converted to hex = 1E679F8D-EA05-6647-80D7-D404CEFEC63F

$result.Properties["objectsid"] # {1 5 0 0 0 0 0 5 21 0 0 0 160 13 253 83 27 146 29 52 250 235 11 116 142 150 12 0}
# Converted to hex = 1 5 0 0 0 0 0 5 15 0 0 0 A0 D FD 53 1B 92 1D 34 FA EB B 74 8E 96 C 0

$result.Properties["netbootguid"] # {68 69 76 76 57 0 16 83 128 49 185 192 79 57 50 83}
# Converted to hex = 44 45 4C 4C 39 00 10 53 80 31 B9 C0 4F 39 32 53
从所有属性中,仅有3个具有guid/字节数组的属性是上述3个

但是,这3个都与我从Active Directory用户和计算机GUI获得的值不匹配


有人知道如何从PowerShell访问计算机的唯一ID属性吗?

如果您有权访问AD PowerShell cmdlet,则可以运行以下语句:

Get-ADObject -Filter {objectclass -eq "computer"} | where { $_.Name -eq "COMPUTERNAME" } | Select ObjectGuid
这将返回我在Active Directory用户和计算机GUI中看到的唯一ID

还想让您知道,最后一个(netbootguid)是您想要的实际GUID。你不能像以前那样直接转换成十六进制

如果要打开powershell命令提示符,请使用netbootguid创建字节数组:

[byte[]]$array5 = 68,69,76,76,57,0,16,83,128,49,185,192,79,57,50,83
New-Object -TypeName System.Guid -ArgumentList @(,$array5)
输出为:

Guid
----
4c4c4544-0039-5310-8031-b9c04f393253

我假设您所说的唯一ID是指GUID/UUID?您有权访问AD cmdlet吗<代码>获取ADComputer$endpoint |选择对象-ExpandProperty对象GUID。还表明该值的存储方式与显示方式不同,这就是上一个示例为close
$result的原因。属性[“netbootguid”]
看起来像是计算机的唯一ID,前三个组中发生了一些奇怪的endian事件。@BaconBits检查我评论中的链接。它涵盖了这一点,我认为链接到了一个更长的解释。字节需要在前两个组中反转谢谢。因此,基本上,当将字节数组转换为guid时,您需要创建一个guid对象,并将字节数组传递给构造函数!而不是自己转换它(因为前几个字节中有奇怪的尾数)。