如何在PowerShell中读取sc.exe命令返回的错误码
解决方案
避坑提醒
- PowerShell 默认存在别名
sc对应内置 cmdletSet-Content,调用服务控制程序时请明确写sc.exe或用调用运算符&执行,避免误触发别名执行错误命令。
方法1:直接读取进程退出码(最简便)
sc.exe 执行完成后会把错误码作为进程退出码返回,你可以直接用 PowerShell 内置自动变量 $LASTEXITCODE 读取该值:
# 执行创建服务命令 & sc.exe create backupService BinPath= $binPath # 读取创建操作的错误码,成功时为0,失败时对应1073等错误值 $createResult = $LASTEXITCODE # 执行启动服务命令 & sc.exe start backupService # 读取启动操作的错误码,成功时为0,失败时对应1056等错误值 $startResult = $LASTEXITCODE
方法2:从输出文本中提取错误码
如果你需要从sc的输出文本里匹配错误码,可以将输出捕获到变量后用正则提取:
# 捕获sc.exe的所有输出(包括标准错误流) $scOutput = & sc.exe create backupService BinPath= $binPath 2>&1 # 正则匹配错误码 if ($scOutput -match 'FAILED (\d+):') { $errorCode = $matches[1] Write-Host "提取到的错误码为:$errorCode" }
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

