Powershell脚本服务检查

时间:2019-07-17 15:31:07

标签: powershell

我正在尝试整理一个脚本,该脚本将用于检查并查看服务是否在本地计算机上运行。如果是这样,它将运行一个exe来启动程序。如果不是,则需要启动该服务,然后在启动后运行该程序。我认为如果服务未运行,我将遇到问题。

If((Get-Service -Name ServiceName*).Status -eq 'Running') 
    {Invoke-Item "C:\Program Files (x86)\Application.exe"}
Else 
    {(Start-Service -Name ServiceName*) , (Invoke-Item "C:\Program Files (x86)\Application.exe")}

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

好吧,如果我通过Powershell以管理员身份运行此脚本,它实际上可以工作。...

答案 1 :(得分:0)

您可以使用Start-Process代替Invoke-Item。以下脚本可在我的计算机上成功运行,并启动一个仅显示WPF窗口的虚拟exe:

$ serviceName =“ service_name” $ pathToExe =“ c:\ path \ to \ file.exe”

if ( (Get-Service -Name $serviceName).Status -eq 'Running' ){
    Start-Process $path
}else{
    Try{
        Start-Process -Name $serviceName -ErrorAction Stop
        Start-Process $path
    }catch{
        Write-Host "Failed to start service!"
    }
}

让我知道这是否对您有用:)