Powershell查看AD 组成员的变化

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

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

 $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个成员

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

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

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

 $a=get-content C:\temp\old.csv
 $b=Get-Content C:\temp\new.csv
 $result=Compare-Object $a $b 
 
 if($result){
 
  Send-MailMessage -From "[email protected]" -To "[email protected]" -Subject "Test email" -Body $result -SmtpServer ultimo -Port 25
 }

测试邮件如下所示,成功

时间: 2024-10-14 18:05:38

Powershell查看AD 组成员的变化的相关文章

Powershell批量移除AD组成员

如何批量将AD组中成员移除呢?下面我们借用一个变量. #获取AD组成员 $Users = Get-ADGroupMember GroupName #删除AD组内成员 Remove-AdGroupMember GroupName –Members $Users 举例如下, 谢谢!

Powershell 获取本地组成员信息

工作当中需要查看本地组成员信息,从网上看到使用net localgroup 命令可以实现本地组成员信息,经过再加工得到如下信息,备忘至此! $localgroups = "Administrators","Remote Desktop Users" $result = @()foreach($group in $localgroups){$groupmembers = net localgroup $groupforeach($member in $groupmem

查看动态组成员

Get-DynamicDistributionGroup "群发" $container=(Get-DynamicDistributionGroup "群发").Recipientcontainer $filter=(Get-DynamicDistributionGroup "群发").RecipientFilter Get-Recipient -RecipientPreviewFilter $filter -OrganizationalUnit

Linux中 groupmems命:更改和查看组成员

groupmems:更改和查看组成员 语法 groupmems [选项] [动作] 选项 -g, --group groupname 更改为指定组 (只有root) -R, --root CHROOT_DIR directory to chroot into (暂未涉及) 动作 -a, --add username 指定用户加入组 -d, --delete username 从组中删除用户 -p, --purge 从组中清除所有成员 -l, --list 显示组成员列表 -h, --help 查

Powershell 查看你Windows电脑中的进程是否有变化

Powershell 查看你Windows电脑中的进程是否有变化(以过去正常的进程列表为基础) PS C:\Users\norman> Get-process | export-clixml c:\good.xmlPS C:\Users\norman> Compare-object -Referenceobject (import-clixml c:\good.xml) -differenceobject (get-process) -Property Processname 原文地址:htt

Django+ PowerShell 管理AD系统

QQ群里的Evan童鞋分享了一个很有意思的博客 http://note.youdao.com/noteshare?id=a60709c00fe88cd09155a2ef50815281  大概是如何利用Flask 调用 Powershell API 实现的一个运维管理系统. 豆子依葫芦画瓢,用Django成功地实现了有一个简单的界面. 直接用Bootstrap模板弄个前端页面,Django 框架,然后后台调用PowerShell API实现查询. 下面是一个简单的demo,输入AD的组,显示组成

Exchange2013/2016 DAG高可用性组成员服务器灾难恢复

我们前面介绍了很多关于Exchange相关配置介绍及灾难恢复的相关介绍,但是对于企业来说,环境内为了提高服务的稳定性,肯定会部署多台Exchange服务器,如果环境有服务出现灾难性我们如果恢复呢,所以呢,我们就在此次文章中介绍,Exchange2013 DAG可用性组成员服务器的灾难恢复介绍:作为数据库可用性组 (DAG) 成员的邮箱服务器丢失,或发生故障且无法恢复并需要进行替换时,可执行服务器恢复操作.Microsoft Exchange Server 2013 安装程序包含可用于执行服务器恢

Oracle在线调整redo日志组数及组成员

Oracle在线调整redo日志组数及组成员 一.调整redo日志组大小 操作原因: redo日志一般设置让日志转换时间为10-20分钟,转换太频繁会影响性能.通常情况下每小时不要超过6次!如果AWR(Automated Workload Repository 自动负载信息库) report中log file switch checkpoint incomplete) 比较大,说明redo log之间的切换过于频繁.可以通过增加redo log size来降低切换的频率.但如果redo log

重做日志文件组和重做日志文件组成员的管理

一.重做日志文件组: 1.添加重做日志组的指令: alter database [数据库名称] add logfile[group 正整数] 文件名称 [,[group 正整数]文件名称]] 不是有group选项时oracle系统会自动在当前最大的组号上加1来产生新的组号 ex:alter database add logfile ('D:\REDO04.LOG','D:\REDO05.LOG') size 15m; 增加新的重做日志组并且添加两个重做日志成员,大小设置为15M 2.删除重做日志