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

PowerShell脚本报错求助:获取AD服务器及查询管理员运行服务

查询AD启用服务器中以Administrator运行的服务并导出CSV

正确脚本示例

以下是可实现需求的完整脚本,包含错误处理逻辑:

# 获取AD中启用的服务器列表(筛选操作系统含Server的计算机)
$servers = Get-ADComputer -Filter { Enabled -eq $true -and OperatingSystem -like "*Server*" } -Properties Name, DNSHostName

# 初始化结果集合
$results = @()

# 遍历每台服务器查询服务
foreach ($server in $servers) {
    try {
        # 使用CIM查询远程服务(比WMI更稳定)
        $adminServices = Get-CimInstance -ClassName Win32_Service `
            -ComputerName $server.DNSHostName `
            -ErrorAction Stop | 
            Where-Object { 
                # 匹配本地管理员(.\Administrator)或域管理员(DOMAIN\Administrator),替换YOUR_DOMAIN_NAME为实际域名
                $_.StartName -match "^(\.|YOUR_DOMAIN_NAME)\\Administrator$" 
            }

        # 将符合条件的服务整理为自定义对象
        foreach ($service in $adminServices) {
            $results += [PSCustomObject]@{
                ServerName    = $server.Name
                DNSHostName   = $server.DNSHostName
                ServiceName   = $service.Name
                DisplayName   = $service.DisplayName
                RunAsAccount  = $service.StartName
                ServiceState  = $service.State
                StartMode     = $service.StartMode
            }
        }
    }
    catch {
        # 记录连接失败的服务器及错误信息
        $results += [PSCustomObject]@{
            ServerName    = $server.Name
            DNSHostName   = $server.DNSHostName
            ServiceName   = "连接失败"
            DisplayName   = $_.Exception.Message
            RunAsAccount  = $null
            ServiceState  = $null
            StartMode     = $null
        }
    }
}

# 导出结果到CSV文件(路径可自行修改)
$results | Export-Csv -Path "C:\Admin_Run_Services.csv" -NoTypeInformation -Encoding UTF8

常见语法错误排查

  1. 管道符与换行错误:管道符|后换行时,需用英文反引号 衔接,或直接写在同一行,避免语法中断。
  2. 条件判断错误:Where-Object中误用赋值符号=而非比较符号-eq,或正则匹配时未转义反斜杠\。
  3. 远程连接参数错误:使用NetBIOS名而非DNSHostName导致解析失败,或未添加-ErrorAction Stop捕获连接异常。
  4. Export-Csv参数遗漏:忘记添加-NoTypeInformation会导致CSV首行出现多余类型信息,影响后续数据处理。
  5. 权限问题:运行脚本的账户需具备AD读取权限,以及远程服务器的WMI/CIM访问权限。

使用提示

  • 替换脚本中的YOUR_DOMAIN_NAME为实际域名,若仅需查询本地管理员运行的服务,可将正则改为^\\.\\Administrator$。
  • 测试时可先指定单台服务器(如-ComputerName "Server01")验证查询逻辑,再批量执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:25:30