Ago*_*noX 2 powershell windows-services
说我要启动MSSSQLSERVER服务。这是通过Start-Servicecmdlet在 PowerShell 中完成的。
有时服务无法启动,原因是如下例所示的错误。我感兴趣的是失败的根本原因,而start-service似乎正在返回 powershell 异常,一个不包含特定错误信息的通用包装器。
PS C:\Users\Administrator> 启动服务 MSSQLSERVER
启动服务:无法启动服务“SQL Server (MSSQLSERVER) (MSSQLSERVER)”。
在行:1 字符:1
+ 启动服务 MSSQLSERVER
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service],
服务命令异常
+ FullQualifiedErrorId : StartServiceFailed,Microsoft.PowerShell.Commands.StartServiceCommand
为了找出问题的根本原因,我们不得不求助于net start命令,这让我们回到了应该被 PowerShell 遗忘的旧时光。
C:\Users\Administrator>NET 启动 MSSQLSERVER SQL Server (MSSQLSERVER) 服务正在启动。 无法启动 SQL Server (MSSQLSERVER) 服务。 发生服务特定错误:17051。 通过键入 NET HELPMSG 3547 可以获得更多帮助。
有没有办法查看服务抛出的底层错误?
正如IT Delinquent所说,错误可以在异常中找到,但在这种情况下,它将存储在内部异常中:
$ErrorActionPreference = "Stop"
try
{
Start-Service -Name "MSSQLSERVER"
}
catch
{
$msg = @()
$err = $_.Exception
do {
$msg += $err.Message
$err = $err.InnerException
} while ($err)
Write-Verbose "Failed to start service: $($msg -join ' - ')"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
942 次 |
| 最近记录: |