有没有办法告诉一个机器在安全组里有多久?

机器被添加到安全组,以防止他们获得GPO。 我希望机器在组内30天后被移除。 理想情况下,我也希望能够生成组中机器的报告。

就像是:

MachineA – 还剩10天

MachineB – 29天了

假设你有一个Windows 2012域控制器,是的 !


我们在哪里可以find组员资料?

当您查看AD组的成员属性时,可以find专有名称格式的所有成员的列表。 但就是这样。 有没有吸烟枪或指纹,告诉你他们如何到达那里。 然而,有一个鲜为人知的数据称为复制元数据 ,可以准确地告诉我们我们需要什么。 这些数据对于团体来说相当特别,因为它向我们显示了个人成员被添加和删除的date。 真棒! 但是,如果你尝试在GUI中查看它看起来像丑陋的hex。

[…]

剧本

这里是我们一直在等待的PowerShell善良(也附在post底部):

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 

在这里输入图像说明

我能想到解决这个问题的唯一方法就是将中间组用作dynamic对象,然后将其嵌套到主组中,以便用户拥有通过嵌套组成员资格授予主组的权限,然而,中间组具有TTL(生存时间,入口TTL属性),并且当TTL过期时,组将消失,因此嵌套组成员将消失。 将临时组命名为“MachineA 30 Day Temporary”等。

这被称为“dynamic对象”。