PowerShell 脚本通知Office365 同步错误
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,豆子公司是上市公司,每年都需要审计。因此离职用户的信息不能删掉,只能disable掉。有的时候,桌面需要把一个离职用户的邮件重新添加到另一个用户的别名,以便继续接收邮件。但是Office365默认配置
千家信息网最后更新 2024年11月11日PowerShell 脚本通知Office365 同步错误
豆子公司是上市公司,每年都需要审计。因此离职用户的信息不能删掉,只能disable掉。有的时候,桌面需要把一个离职用户的邮件重新添加到另一个用户的别名,以便继续接收邮件。但是Office365默认配置情况下 一个已经disable掉的用户,不管怎么改他都不会继续同步,这样造成的结果就是桌面经常修改的顺序不对,造成了本地的AD已经改了,但是修改的东西不会同步到office365, 或者直接office365认为已经有记录了,拒绝添加新的记录。
鉴于桌面支持的不靠谱,豆子每天都需要看看同步状态,然后通知桌面修改。登录主界面,然后点击DirSync Errors就能看见了
冲突的smtp地址记录
如何能自动获取这个界面呢?豆子刚开始找了半天的API,始终没找到,甚至都开始打爬虫的注意了,后来终于找到了相关的命令
https://docs.microsoft.com/en-us/powershell/module/msonline/get-msoldirsyncprovisioningerror?view=azureadps-1.0
下面是完整的脚本
Get-PSSession | Remove-PSSession$username = "aaa@bbb.com"$secureStringPwd = ConvertTo-SecureString -AsPlainText "password" -Force$creds = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $secureStringPwdConnect-MsolService -Credential $UserCredential$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $creds -Authentication Basic -AllowRedirectionImport-PSSession $Session$result=Get-MsolDirSyncProvisioningError | select Displayname, LastDirSyncTime, ObjectId, ObjectType, @{n='Error';e={$_.ProvisioningErrors.ErrorCategory}}, UserPrincipalName$from = "helpdesk@bbb.com"$to = "aaa@bbb.com"$smtp = "smtp.office365.com" $sub = "Office365 Sync Error" $secpasswd = ConvertTo-SecureString "Password" -AsPlainText -Force $mycreds = New-Object System.Management.Automation.PSCredential ($from, $secpasswd)$a = ""#import-csv C:\scripts\users.csv | ConvertTo-Html -Body " User List
" -Head $a | out-file C:\temp\tt.html$htmlbody=$result| ConvertTo-Html -Body " Office365 DirSync Errors
For Further details, please visit https://portal.office.com/adminportal/home#/dirsyncobjecterrors
" -Head $aSend-MailMessage -To $to -From $from -Subject $sub -Body ($htmlbody|Out-String) -Credential $mycreds -SmtpServer $smtp -DeliveryNotificationOption Never -BodyAsHtml -UseSsl -port 587
收到邮件通知
成功之后设置一个计划任务
$settingspath='C:\users\yuan.li\Documents\GitHub\Powershell\SyncErrorNotification.ps1'if (Get-ScheduledTask -TaskName 'SyncNotification' -ErrorAction SilentlyContinue){ Unregister-ScheduledTask -TaskName 'SyncNotification' -Confirm:$false}$Action = New-ScheduledTaskAction -Execute 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' -Argument "-executionpolicy bypass -File '$settingspath'" $Trigger = New-ScheduledTaskTrigger -Daily -At '10AM'register-ScheduledTask -Action $Action -Trigger $Trigger -Settings (New-ScheduledTaskSettingsSet -Compatibility Win8) -User 'aa' -Password 'pass' -RunLevel Highest -TaskName 'SyncNotification'Start-ScheduledTask -TaskName 'SyncNotification
结果如下
桌面
用户
同步
豆子
邮件
公司
界面
结果
脚本
不对
成功
上市公司
东西
任务
信息
别名
命令
地址
就是
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发案例分析与开发实践代码
家用处理器和服务器的区别
软件开发管理 微软
公共知识数据库建设
寒假网络安全课心得_
黑龙江软件开发哪个好
咸鱼之王找回服务器
龙之谷无法连接服务器
软件开发过程模型对比
网络安全与系统运维科职责
网络安全边界防护不明确
软件开发人员部署系统
现代网络技术的优势
软件开发 app开发
中国与世界网络安全
网络安全税前工资
暗黑破坏神2服务器又炸了
县级网络安全监督管理职责
5g软件开发工程师是做什么的
徐州一站式网络技术服务电话
2018年网络安全十大事件
wap封装app软件开发
以经济学的角度分析网络安全
斗战神服务器
邮件无法验证服务器身份是什么意思
华南理工大学网络安全考研
云计算网络安全观察
航天数据库
该服务器安全证书失效
为啥制定网络安全法