陈奇网络工作室

PowerShell脚本通知Office365同步错误

系统运维

豆子公司是上市公司,每年都需要审计。因此离职用户的信息不能删掉,只能使残废掉。有的时候,桌面需要把一个离职用户的邮件重新添加到另一个用户的别名,以便继续接收邮件。但是Office365默认配置情况下一个已经使残废掉的用户,不管怎么改他都不会继续同步,这样造成的结果就是桌面经常修改的顺序不对,造成了本地的广告已经改了,但是修改的东西不会同步到办公室365,或者直接office365认为已经有记录了,拒绝添加新的记录。

鉴于桌面支持的不靠谱,豆子每天都需要看看同步状态,然后通知桌面修改。登录主界面,然后点击目录同步错误就能看见了

冲突的简单邮件传输协议地址记录

如何能自动获取这个界面呢?豆子刚开始找了半天的API,始终没找到,甚至都开始打爬虫的注意了,后来终于找到了相关的命令

https://份文件。微软。com/en-us/powershell/module/ms online/get-msoldirsyncprovisioningerror?view=azure ads-1.0

下面是完整的脚本

Get-PSSession | Remove-PSSession

$用户名=aaa@bbb.com

$ securestringd=convert to-SecureString-AsPlainText密码-强制

$creds=新对象系统管理。自动化。PS凭据-参数列表$ username,$ secureStringPwd

connect-msol服务-Credential $用户凭据

$ Session=New-PS Session-configuration name Microsoft .交换-连接尤里https://outlook.office365.com/powershell-liveid/-凭据$ creds-基本身份验证-允许重定向

Import-PSSession $Session

$ result=Get-MsolDirSyncProvisioningError | select显示名称,LastDirSyncTime,ObjectId,ObjectType,@{n=\\\'Error\\\ 'e={ $ _。设置错误。错误类别} },UserPrincipalName

$ from=helpdesk@bbb.com

美元兑aaa@bbb.com

$ SMTP=smtp.office365.com

$sub=Office365同步错误

$ sec passwd=convert to-SecureString Password-AsPlainText-Force

$mycreds=新对象系统管理。自动化。PS凭据($ from,$secpasswd)

$a=风格

$a=$a BODY{background-color:淡紫色;}

$a=$a表格{边框宽度:1px边框样式:纯色;边框颜色:黑色;边框-塌陷:塌陷;}

$ a=$ a TH { border-width:1px;填充:0px边框样式:纯色;边框颜色:黑色;背景色:蓟}

$ a=$ a TD { border-width:1px;填充:0px边框样式:纯色;边框颜色:黑色;背景色:PaleGoldenrod }

$a=$a /style

# import-CSV C:\ \ \ \ scripts \ \ \ \ users。CSV |转换器-Html-正文H1用户列表/H1-Head $ a | out-file C:\ \ \ \ temp \ \ \ \ TT。超文本标记语言

$ Html Body=$ result | ConvertTo-Html-Body H1 office 365目录同步错误/H1 H2有关详细信息,请访问https://门户。办公室。com/admin portal/home #/dirsyncobjecterrors/H2-Head $ a

send-mail message-To $ To-From $ From-Subject $ sub-Body($ html Body | Out-String)-Credential $ myc reds-SMTP server $ SMTP-delivery notification option Never-Body ash html-use SSL-port 587

收到邮件通知

成功之后设置一个计划任务

$ settings path=\ \ \ ' C:\ \ \ \ users \ \ \ \元。李\ \ \ \ Documents \ \ \ \ GitHub \ \ \ \ Powershell \ \ \ \ syncerrornotification。PS1 \ \ \ '

if(Get-计划任务-TaskName \ \ \ '同步通知\ \ \ '-错误操作静默继续){

取消注册-计划任务-TaskName \ \ \ '同步通知\ \ \ '-确认:$false

}

$ Action=New-scheduled task Action-Execute \ \ \ ' C:\ \ \ \ Windows \ \ \ \ System32 \ \ \ \ Windows powershell \ \ \ \ v 1.0 \ \ \ \ powershell。exe \ \ \ '-参数-执行策略绕过-文件\ \ \ ' $设置路径\ \ \ '

$ Trigger=New-计划任务触发器-每日-在\ \ \ ' 10AM \ \ \ '时

注册-计划任务-操作$操作-触发器$触发器-设置(New-scheduledtasksettingset-兼容win 8)-用户\ \ \ ' aa \ \ \ '-密码\ \ \ '通过\ \ \ '-运行级别更高-TaskName \ \ \ '同步通知\ \ \ '

开始-计划任务-任务名\\\ '同步通知

结果如下

更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理商官网:www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3