如何从Azure本地环境获取Microsoft Entra Connect最后同步详情?
获取Azure AD Connect最后同步时间并监控延迟的PowerShell脚本
需求:从本地Azure环境获取最后同步数据,对应路径为:Microsoft Entra Connect > Connect Sync > 从Active Directory预配 > Microsoft Entra Connect同步 > 最后同步。
以下是实现该需求的PowerShell脚本:
# 使用服务账号连接Azure AD Import-Module MSOnline Connect-MsolService # 获取租户信息 $companyInfo = Get-MsolCompanyInformation # 获取最后目录同步时间 $lastSyncTime = $companyInfo.LastDirSyncTime $currentTime = Get-Date # 计算时间差 $timeDifference = $currentTime - $lastSyncTime # 检查同步延迟是否超过1小时 if ($timeDifference.TotalHours -gt 1) { <## 邮件告警配置(取消注释即可启用) $smtpServer = "smtp.yourdomain.com" # 替换为你的SMTP服务器地址 $smtpFrom = "monitor@yourdomain.com" # 替换为发件人邮箱 $smtpTo = "admin@yourdomain.com" # 替换为收件人邮箱 $subject = "告警:目录同步延迟" $body = "最后一次目录同步发生于 $lastSyncTime,已超过1小时未同步。" # 发送告警邮件 Send-MailMessage -From $smtpFrom -To $smtpTo -Subject $subject -Body $body -SmtpServer $smtpServer##> Write-Output "同步延迟时长:$timeDifference" }else{ Write-Output "Azure AD 同步状态正常" }
脚本说明
- 依赖模块:需提前安装
MSOnline模块,可通过Install-Module MSOnline命令安装(需管理员权限)。 - 权限要求:运行脚本的账号需具备读取Azure AD租户信息的权限。
- 告警功能:若需要启用邮件告警,移除邮件配置块的注释符号,并替换其中的SMTP服务器、邮箱地址等信息。
内容的提问来源于stack exchange,提问作者Abivanth
相关产品推荐
相关产品推荐

