按 GUID 搜索广告

按 GUID 搜索广告

如何通过 GUID 在 Active Directory 中搜索对象?换句话说,找到属于指定 GUID 的对象的最佳方法是什么?

答案1

在 DC 上或安装 RSAT 并启用 AD 工具:

打开“Windows PowerShell 的 Active Director 模块”(使用其他管理工具找到它)

get-aduser -id {guid}

或者对于任何对象:

get-adobject -id {guid}

可能需要通过管道将其传输format-list以使其可读:

get-adobject -id {guid} | fl

答案2

使用 Powershell 和QuestAD cmdlet,以下代码根据我的 guid 返回我的用户帐户。

$Guid = "d65e4578-475a-422e-ac99-123456789012"

Get-QADUser -IncludeAllProperties|Where {$_.guid -eq $Guid}

这不是最有效的方式,因为它在搜索时会从 AD 加载所有对象,但对我来说有效。

答案3

$guid = "d65e4578-475a-422e-ac99-123456789012"

foreach ($dom in (Get-adforest).Domains) { Get-ADObject -filter {ObjectGUID -eq $guid } -Properties * -Server $dom | fl }

答案4

这比其他所有答案所展示的要容易得多。下面的每个代码块都是一个独立的方法,你可以执行其中任何一个(它们大部分是相同的)。

显然,需要安装远程服务器管理工​​具(RSAT),或者您需要在域控制器(DC)上工作。

如果您使用 SID,即回收站内的文件夹、文件夹的权限等(它们都以 S-1- 开头),您可以执行以下操作:

Get-ADUser -Filter { SID -eq "S-1-5-21-000-000...0001" } | select Name, GivenName, Surname, SID

或对于多个,添加 OR:

Get-ADUser -Filter { SID -eq "S-1-5-21-000-000...0001" -or SID -eq "S-1-5-21-000-000...0002" } | select Name, GivenName, Surname, SID

或者,如果将它们全部放在一个数组中,则对数组进行迭代:

$MyArray = "S-1-5-21-000-000...0001", "S-1-5-21-000-000...0002"
$MyArray.ForEach( { Get-ADUser -Filter { SID -eq $_ } | select Name, GivenName, Surname, SID  })

如果你实际上是通过 GUID 搜索的:

Get-ADUser -Filter { OBjectGUID -eq "e257c3da-9388-0000-00...0001" } | select Name, GivenName, Surname, SID

显然,以上是在搜索用户时。您可以搜索任何对象:

Get-ADObject -Filter { OBjectGUID -eq "e257c3da-9388-0000-00...0001" } | select Name, ObjectClass, ObjectGUID

或者对于按 ObjectGUID 列出的对象(如果它们都在一个数组中):

$MyArray = "e257c3da-9388-0000-00...0001", "e257c3da-9388-0000-00...0002"
$MyArray.ForEach( { Get-ADObject -Filter { OBjectGUID -eq $_ } | select Name, ObjectClass, ObjectGUID })

相关内容