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

远程多服务器执行PowerShell脚本遇Invoke-Command报错求助

修复远程ADSync运行历史收集脚本并实现邮件发送

脚本核心问题修正

  • Invoke-Command语法错误:原脚本中-ScriptBlock与后续代码块分离,导致命令无法识别远程执行逻辑,正确写法需将远程代码完整包裹在-ScriptBlock { ... }中。
  • 缺少凭据支持:远程服务器执行命令需指定权限凭据,需添加-Credential参数。
  • 数据汇总逻辑:确保远程返回的数据集被正确收集后统一导出,避免局部导出导致的数据覆盖。

修正后完整脚本

# 读取目标服务器列表
$servers = Get-Content "c:\serverlist\servers.txt"

# 获取远程访问凭据(交互式输入,也可提前加密存储)
$remoteCredential = Get-Credential -Message "输入远程服务器访问凭据"

# 批量收集各服务器ADSync运行历史
$Report = foreach ($server in $servers) {
    Invoke-Command -ComputerName $server -Credential $remoteCredential -ScriptBlock {
        # 定义输出属性映射
        $props = @(
            @{N='ServerName'; E={ $env:COMPUTERNAME }}
            'StartDate'
            'EndDate'
            'ConnectorName'
            'RunProfileName'
            'StepResult'
        )

        # 定义要筛选的运行配置文件
        $targetProfiles = @(
            'Delta Import'
            'Delta Synchronization'
            'Full Import'
            'Full Synchronization'
        ) -join '|'

        # 获取并筛选指定配置的最新2条运行记录
        Get-ADSyncToolsRunstepHistory | 
            Group-Object RunProfileName |
            Where-Object Name -Match $targetProfiles | 
            ForEach-Object { $_.Group | Select-Object -First 2 } |
            Select-Object $props
    }
}

# 将汇总数据导出为CSV文件
$Report | Export-Csv "c:\serverlist\export.csv" -NoTypeInformation -Encoding UTF8

# 发送带附件的邮件(需根据实际SMTP配置修改参数)
$mailSettings = @{
    SmtpServer = "your-smtp-server.domain.com"
    From = "report-sender@domain.com"
    To = "report-recipient@domain.com"
    Subject = "ADSync运行历史汇总报告"
    Body = "附件为各服务器ADSync指定配置的运行历史数据,请查收。"
    Attachments = "c:\serverlist\export.csv"
    UseSsl = $true
    Port = 587
    Credential = (Get-Credential -Message "输入邮件服务器发送凭据")
}

Send-MailMessage @mailSettings

关键注意事项

  • 确保所有远程服务器已安装ADSyncTools模块,否则远程执行Get-ADSyncToolsRunstepHistory会报错。
  • 凭据存储:若需自动化执行,可使用ConvertTo-SecureString将凭据加密存储到文件,避免交互式输入,但需注意文件权限安全。
  • SMTP配置:需根据企业邮件服务器的实际要求调整SmtpServer、Port、UseSsl等参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:30:56