千家信息网

PowerShell 脚本通知Office365 同步错误

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,豆子公司是上市公司,每年都需要审计。因此离职用户的信息不能删掉,只能disable掉。有的时候,桌面需要把一个离职用户的邮件重新添加到另一个用户的别名,以便继续接收邮件。但是Office365默认配置
千家信息网最后更新 2025年02月24日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安全错误 数据库的锁怎样保障安全 江西网络安全警示教育 武汉市网络安全官网 广东计算机网络技术插本考什么 达州国家网络安全宣传周活动 华为服务器uc2错误 完美日记电商服务器改造 网络安全维护员是做什么的 cmn软件开发 软件开发模型中的瀑布模型 武穴app软件开发 计算机网络技术的前沿动态 软件开发需要到税局备案吗 vim服务器连接失败 深圳酷通网络技术有限公司 白酒风味物质标准化数据库 一台服务器多少个jvm 中兴软件开发跳槽工资待遇 网络安全法第67条 跟网络安全相关的项目 陆星润网络安全 软件开发软件开发就业方向 游无法连接服务器 小米智能家居是用什么软件开发的 违反网络安全法二十七条处罚五年 服务器安全高级运维工程师 咪兔视频连接服务器失败 国泰安数据库怎样导入公司代码 网站建设与数据库管理 计算机网络安全检查登记表 深圳三圆互联网科技有限公司
0