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

PowerShell脚本优化:简化多服务运行状态采集重复代码

简化PowerShell服务状态采集脚本

直接用数组定义目标服务,通过循环批量处理,既减少重复代码,又保留原有CSV输出格式:

# 定义需要采集状态的服务清单
$targetServices = @("ETOS1", "ETOS1 Database", "ETOS1 Webserver")

# 存储所有服务的状态结果
$outputData = @()

foreach ($service in $targetServices) {
    # 获取服务实例,忽略不存在的服务报错
    $serviceInstance = Get-Service -Name $service -ErrorAction SilentlyContinue
    # 转换状态为1/0:运行中为1,停止/不存在为0
    $serviceStatus = if ($serviceInstance -and $serviceInstance.Status -eq 'Running') { 1 } else { 0 }

    # 构建符合原有CSV格式的对象,空列直接赋值空字符串
    $statusRecord = [PSCustomObject]@{
        "服务名称" = $service
        "列名1"    = ""  # 替换为你实际需要的空列名称
        "列名2"    = ""  # 替换为你实际需要的空列名称
        "服务状态" = $serviceStatus
    }

    $outputData += $statusRecord
}

# 导出到CSV文件,路径可自行修改
$outputData | Export-Csv -Path ".\ServiceStatus.csv" -NoTypeInformation -Encoding UTF8

关键说明

  • 新增/修改监控服务只需要修改$targetServices数组,无需重复编写采集逻辑
  • -ErrorAction SilentlyContinue避免因服务不存在抛出错误中断脚本
  • 自定义对象严格匹配原有CSV的列结构,空列保持为空字符串,确保输出格式一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:40:36