将计算机添加到安全组以防止它们获得 GPO。我希望在计算机加入该组 30 天后将其删除。理想情况下,我还希望能够生成有关组中计算机的报告。
就像是:
MachineA - 剩余 10 天
MachineB - 剩余 29 天
答案1
我们可以在哪里找到团体成员的详细信息?
当您查看 AD 组的成员属性时,您将找到以专有名称格式列出的所有成员列表。但仅此而已。没有确凿的证据或指纹可以告诉您他们是如何到达那里的。然而,有一段鲜为人知的数据叫做复制元数据它可以准确地告诉我们需要什么。这些数据对于群组来说非常特殊,因为它向我们展示了添加和删除单个成员的日期。太棒了!但如果你尝试在 GUI 中查看它,它看起来像丑陋的十六进制。
[...]
剧本
以下是我们一直在期待的 PowerShell 优点(也附在文章的底部):
Import-Module ActiveDirectory
$username = "janitor"
$userobj = Get-ADUser $username
Get-ADUser $userobj.DistinguishedName -Properties memberOf |
Select-Object -ExpandProperty memberOf |
ForEach-Object {
Get-ADReplicationAttributeMetadata $_ -Server localhost -ShowAllLinkedValues |
Where-Object {$_.AttributeName -eq 'member' -and
$_.AttributeValue -eq $userobj.DistinguishedName} |
Select-Object FirstOriginatingCreateTime, Object, AttributeValue
} | Sort-Object FirstOriginatingCreateTime -Descending | Out-GridView
答案2
我能想到的唯一解决办法是使用一个技巧,即使用中间组作为动态对象,然后将其嵌套到主要组中,这样用户就可以通过嵌套组成员身份获得主要组的权限,但是,中间组具有 TTL(生存时间,入口 TTL 属性),当该 TTL 到期时,该组将消失,因此嵌套组成员身份也将消失。将临时组命名为“MachineA 30 天临时”之类的名称。
这被称为“动态对象。”