【问题标题】:Start-Process fails to start the serviceStart-Process 无法启动服务
【发布时间】:2020-01-17 10:14:59
【问题描述】:

我是 powershell 的新手。我正在处理一个没有间歇性启动服务的脚本。

$sensuresult = Start-Process -Wait -FilePath $filepath -ArgumentList '/tasks="assocfiles,modpath" /quiet' -PassThru

基本上,我们在这里尝试安装一个 .msi 包。上述行间歇性地失败。

Write-Host $sensuresult

Write-Host : The following exception occurred while retrieving the string: "Process has exited, so 
the requested information is not available."
At line:8 char:1
+ Write-Host $sensuresult
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [Write-Host], ExtendedTypeSystemException
+ FullyQualifiedErrorId : 
ToStringPSObjectBasicException,Microsoft.PowerShell.Commands.WriteHostCommand

有了上面的错误信息,我真的不知道是 Start-Process 失败还是 Write-host。

我能否了解一下 Start-Process 为什么不间歇性地安装软件包以及执行此操作的最佳替代方法是什么?

【问题讨论】:

    标签: powershell start-process


    【解决方案1】:

    您可以通过首先检查进程是否正在运行来启动进程。

    #check service is running or not
    
    $ServiceName = 'AppIDSvc'
    $arrService = Get-Service -Name $ServiceName
    
    while ($arrService.Status -ne 'Running')
    {
    
        Start-Service $ServiceName
        write-host $arrService.status
        write-host 'Service starting'
        Start-Sleep -seconds 15
        $arrService.Refresh()
        if ($arrService.Status -eq 'Running')
        {
            Write-Host 'Service is now Running'
        }
    
    }
    

    【讨论】:

    • 我有类似的逻辑来启动将在安装我的 .msi 二进制文件后提供的服务。我想先安装我的二进制文件。
    • @Ashwin,好的,一般当你尝试运行那个msi时,运行的是哪个exe,因为安装包都带有.msi,需要知道像PkgMgr.exe或wsua.exe这样的哪个或还有其他的吗?
    • 我正在尝试安装“sensu”
    猜你喜欢
    • 1970-01-01
    • 2016-11-03
    • 2014-06-22
    • 2012-09-09
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    相关资源
    最近更新 更多