You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell生成带颜色标记的AD复制状态动态HTML表格?

实现AD复制状态HTML表格的动态单元格颜色

核心做法

先拉取AD复制状态数据,再通过PowerShell遍历数据生成HTML表格时,根据Last Result的值给对应单元格加内联样式——值为0时设绿色背景,大于0时设红色背景,最后把这个HTML作为邮件正文发送。

具体代码实现

  1. 获取AD复制数据
    用Get-ADReplicationPartnerMetadata命令获取所需的复制信息:
# 加载AD模块(未自动加载时执行)
Import-Module ActiveDirectory

# 获取所有服务器的复制伙伴元数据,筛选关键字段
$replicationStats = Get-ADReplicationPartnerMetadata -Target * -Partition * | 
    Select-Object Server, PartnerServer, Partition, LastReplicationSuccess, LastResult
  1. 生成带颜色的HTML表格
    先定义基础表格样式,再逐行处理数据,动态设置单元格背景色:
# 定义HTML基础样式(适配邮件客户端显示)
$htmlStyle = @"
<style>
    table { border-collapse: collapse; width: 95%; margin: 10px auto; }
    th { background: #f0f0f0; padding: 8px; border: 1px solid #ccc; }
    td { padding: 8px; border: 1px solid #ccc; }
</style>
"@

# 初始化表格头部
$htmlTable = "<table><tr><th>本地服务器</th><th>伙伴服务器</th><th>分区</th><th>最后复制成功时间</th><th>复制结果</th></tr>"

# 遍历数据行,给复制结果单元格添加颜色样式
foreach ($stat in $replicationStats) {
    # 根据Last Result值判断样式
    $cellStyle = if ($stat.LastResult -eq 0) { "background-color: #dff0d8; color: #3c763d;" } 
                else { "background-color: #f2dede; color: #a94442;" }
    
    # 拼接当前行的HTML内容
    $htmlTable += @"
    <tr>
        <td>$($stat.Server)</td>
        <td>$($stat.PartnerServer)</td>
        <td>$($stat.Partition)</td>
        <td>$($stat.LastReplicationSuccess)</td>
        <td style="$cellStyle">$($stat.LastResult)</td>
    </tr>
    "@
}

# 闭合表格标签,组合完整HTML邮件正文
$htmlTable += "</table>"
$emailBody = $htmlStyle + $htmlTable
  1. 发送HTML格式邮件
    把生成的HTML作为邮件正文发送,注意指定-BodyAsHtml参数确保HTML渲染:
Send-MailMessage -From "ad-monitor@yourdomain.com" `
                -To "admin-team@yourdomain.com" `
                -Subject "每日AD复制状态报告" `
                -Body $emailBody `
                -BodyAsHtml `
                -SmtpServer "smtp.yourdomain.com"

注意事项

  • 邮件客户端大多不支持外部样式表,直接在<td>标签内写内联样式是最稳妥的兼容方式,头部的基础样式仅用于优化表格整体显示。
  • 运行脚本的账号需具备读取AD复制元数据的权限,且已安装ActiveDirectory模块(通常在域控制器或RSAT工具包中)。

内容的提问来源于stack exchange,提问作者Arbelac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 07:55:41