Powershell查看AD 组成员的变化

简介:

论坛上看见有人问如何用powershell查看管理员组的变化,豆子写了个很简单的脚本实现这个功能,写的非常简单,就是一个思路验证了一下而已。


首先获取一下当前的组成员信息吧,Powershell 3.0以后可以直接使用AD module里面的很多命令,一个比较好使的命令是 Get-ADReplicationAttributeMetadata,可以获取对象相关的metadata 信息。比如下面我可以获取testgroup1里面每个成员创建的时间状态。

1
2
  $dn =( get-adgroup  "testgroup1" ).distinguishedname
  Get-ADReplicationAttributeMetadata  $dn  -Server syddc01 -ShowAllLinkedValues |  Where-Object  { $_ .attributename  -eq  'member' } | select FirstOriginatingcreatetime, attributevalue |  export-csv  c:\temp\old.csv


可以看见,目前这个组只有2个成员

wKioL1WnTtCAMMSOAAFvlz4i8oo850.jpg


新加一个成员进去,再次执行一下,可以看见新的成员变化

1
  Get-ADReplicationAttributeMetadata  $dn  -Server syddc01 -ShowAllLinkedValues |  Where-Object  { $_ .attributename  -eq  'member' } | select FirstOriginatingcreatetime, attributevalue |  export-csv  c:\temp\new.csv


wKiom1WnTPLCt1N4AAFwNuHdnVk735.jpg


把两次结果都保存下来,然后利用compare-object比较一下,如果不为空,发送个邮件

1
2
3
4
5
6
7
8
  $a = get-content  C:\temp\old.csv
  $b = Get-Content  C:\temp\new.csv
  $result = Compare-Object  $a  $b 
  
  if ( $result ){
  
   Send-MailMessage  -From  "test@abc.com"  -To  "yuan.li@syd.ddb.com"  -Subject  "Test email"  -Body  $result  -SmtpServer ultimo -Port 25
  }


测试邮件如下所示,成功

wKiom1WnTgLjDiS2AACSosrkHf8753.jpg










本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1675273,如需转载请自行联系原作者
目录
相关文章
|
15天前
|
监控 数据可视化 安全
AD域管理PowerShell常用命令总结
本文介绍了GET-ADUser命令在AD域管理中的多种应用场景,包括获取、过滤和导出用户信息至CSV文件。同时,推荐了卓豪ADManager Plus软件,该软件提供了批量用户与组管理、报表生成功能,极大简化了AD域的日常管理工作,提升了IT管理员的工作效率和准确性。
|
数据安全/隐私保护