我正在尝试整理一个脚本,该脚本将用于检查并查看服务是否在本地计算机上运行。如果是这样,它将运行一个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")}
任何帮助将不胜感激。
答案 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!"
}
}
让我知道这是否对您有用:)