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

PowerShell读取txt文件提示.txt无效,该如何排查修复?

PowerShell脚本报错原因及修复方案

错误点梳理

  • 核心参数传值错误:foreach遍历txt内容拿到的每台计算机名存储在变量$POS中,但你调用Get-Service、Set-Service时,-ComputerName参数错误传入了存储txt路径的$POSName变量,系统将文件路径当做计算机名解析,就会触发txt无效的报错。
  • 变量名拼写错误:Set-Service行的服务名参数使用了未定义的$Box.Name,实际应该为你前面声明的$Bex.Name,运行到此处会抛出变量不存在的错误。
  • 逻辑位置错误:服务校验、启停的全部逻辑都写在foreach循环外,最终只会处理txt最后一行对应的计算机,前面所有计算机的操作都会被覆盖丢弃。

修复后代码

$POSListPath = "$PSScriptRoot\Bex.txt"
# 逐行读取txt中的计算机名遍历处理
foreach ($POS in (Get-Content $POSListPath)) {
    $Bex = Get-Service -ComputerName $POS | Where-Object { $_.name -eq "BexServ" }
    If ($null -eq $Bex) {
        # 服务不存在
        Write-Host "$POS 上未找到BexServ服务" -ForegroundColor Red
    } 
    Else {
        # 服务存在
        Write-Host "在 $POS 上找到服务 $($Bex.Name)" -ForegroundColor Green
           
        If ($Bex.Status -eq "Running") {
            # 停止服务
            Set-Service -status stopped -ComputerName $POS -name $Bex.Name -ErrorAction Stop
            Write-Host "$POS 上的 $($Bex.Name) 服务已成功停止"  -ForegroundColor Green 
        }
        else {
            Write-Host "$POS 上的 $($Bex.Name) 服务已经是停止状态" -ForegroundColor Green
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:06:01