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

如何在Windows 10企业版服务器用PowerShell v5+通过XML模板配置Perfmon计数器

批量部署Perfmon计数器模板的PowerShell方案

一、PowerShell v5+批量推送模板的可行性与方法

完全可以通过PowerShell v5及以上版本实现批量部署,以下是两种实用方法:

方法1:利用logman命令行工具(简单高效)

logman是Windows自带的性能日志管理工具,支持直接导入XML模板,结合PowerShell远程执行能力可批量操作:

# 定义目标服务器列表
$servers = @("Server01", "Server02", "Server03")
# XML模板路径(推荐放在共享目录,或先复制到目标服务器本地)
$templatePath = "\\SharedServer\PerfTemplates\ProcessCounters.xml"
# 数据收集集名称
$dcSetName = "ProcessPerfMonitor"

Invoke-Command -ComputerName $servers -ScriptBlock {
    # 清理同名现有收集集(避免冲突)
    logman stop $using:dcSetName -s localhost -ets 2>&1 | Out-Null
    logman delete $using:dcSetName -s localhost -ets 2>&1 | Out-Null
    # 导入模板并创建收集集
    logman import $using:dcSetName -xml $using:templatePath -s localhost -ets
    # 可选:立即启动收集
    logman start $using:dcSetName -s localhost -ets
} -Credential (Get-Credential)

方法2:通过CIM远程操作

借助CIM接口也能完成模板导入,适合需要更精细控制的场景:

$servers = @("Server01", "Server02")
$localTemplatePath = "C:\Temp\PerfTemplate.xml"
$dcSetName = "ProcessPerfCounters"

foreach ($server in $servers) {
    # 先把模板复制到目标服务器本地
    Copy-Item -Path $localTemplatePath -Destination "\\$server\C$\Temp\" -Force
    # 调用CIM方法导入模板
    Invoke-CimMethod -ComputerName $server -ClassName Win32_PerfFormattedData_Counters_PerfmonCounterSet `
        -MethodName ImportCounterSet -Arguments @{FileName = "C:\Temp\PerfTemplate.xml"}
}

二、Pla.DataCollectorSet COM对象的完整操作步骤

使用Pla COM对象可以实现更灵活的自定义配置,完整流程如下:

$servers = @("Server01", "Server02")
$localTemplatePath = "C:\PerfTemplates\ProcessCounters.xml"
$dcSetName = "ProcessPerformanceMonitor"

Invoke-Command -ComputerName $servers -ScriptBlock {
    # 创建Pla数据收集集对象
    $dcSet = New-Object -COM Pla.DataCollectorSet
    # 设置收集集名称
    $dcSet.Name = $using:dcSetName
    # 从XML模板导入配置,第二个参数设为$true覆盖现有同名集
    $dcSet.Import($using:localTemplatePath, $true)
    # 保存配置到本地计算机,$false表示不立即启动
    $dcSet.Commit($null, $false)
    # 可选:启动数据收集
    $dcSet.Start($false)

    # 释放COM对象避免资源泄漏
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($dcSet) | Out-Null
} -Credential (Get-Credential)

关键参数说明

  • Import():第一个参数为目标服务器上的模板路径,bOverwrite设为$true可覆盖现有同名收集集
  • Commit():$null表示保存到本地计算机,bStart设为$false仅保存配置不启动
  • Start():bSynchronous设为$false表示异步启动,避免阻塞远程会话

三、注意事项

  • 执行PowerShell的账户需在所有目标服务器拥有管理员权限,且目标服务器已启用WinRM远程管理
  • 若使用共享目录存放模板,需确保目标服务器的执行账户或计算机账户有读取权限
  • 建议先在单台测试服务器验证命令,再批量执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:58:35