Машины добавляются в группу безопасности, чтобы предотвратить получение ими объекта групповой политики. Я хочу, чтобы машины убрали через 30 дней пребывания в группе. В идеале я хотел бы также иметь возможность формировать отчет по машинам в группе.
Что-то вроде:
MachineA - осталось 10 дней
MachineB - осталось 29 дней
Если у вас есть контроллер домена Windows 2012, да!
Где мы можем найти информацию о членстве в группе?
Если вы посмотрите на атрибут участника группы AD, вы найдете список всех участников в формате отличительного имени. Но это все. Нет ни дымящегося пистолета, ни отпечатков пальцев, говорящих о том, как они туда попали. Однако есть малоизвестный фрагмент данных, называемый метаданные репликации это может сказать нам, что именно нам нужно. Эти данные являются особенными для групп, потому что они показывают нам дату добавления и удаления отдельных членов. Потрясающие! Но если вы попытаетесь просмотреть это в графическом интерфейсе, это будет выглядеть уродливым шестнадцатеричным.
[...]
Сценарий
Вот добро 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
Единственное, что я могу придумать, чтобы решить эту проблему, - это трюк, в котором вы используете промежуточную группу в качестве динамического объекта, а затем вкладываете ее в основную группу, чтобы у пользователя были разрешения, предоставленные основной группе посредством членства во вложенной группе, однако промежуточная группа имеет TTL (время жизни, атрибут entry-TTL), и когда этот TTL истечет, группа исчезнет, и, таким образом, членство во вложенной группе исчезнет. Назовите временную группу как-то вроде "MachineA 30 Day Temporary" или что-нибудь в этом роде.
Это называется «Динамические объекты».