有没有办法判断机器在安全组中的时间?

Mat*_*ewC 5 windows powershell active-directory group-policy

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

就像是:

MachineA - 还剩 10 天

MachineB - 还剩 29 天

Hop*_*00b 10

如果您有 Windows 2012 域控制器,是的


我们在哪里可以找到组成员资格的详细信息?

当您查看 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
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Rya*_*ies 5

我唯一能想到的解决这个问题的方法是使用一个中间组作为动态对象,然后将其嵌套到主要组中,以便用户通过嵌套组成员资格授予主要组的权限,然而,中间组有一个 TTL(生存时间,条目 TTL 属性),当该 TTL 到期时,该组将消失,因此嵌套的组成员资格将消失。将临时组命名为“MachineA 30 Day Temporary”之类的名称。

这称为“动态对象”。