检查程序是否在远程计算机列表上运行,如果没有,则启动它(使用 PowerShell)

检查程序是否在远程计算机列表上运行,如果没有,则启动它(使用 PowerShell)

我正在尝试构建我认为简单的任务,但是 PS ISE 的输出窗口中出现大量红色文本,因此它变得比预想的更困难。:-)

我的桌面上有一个文本文件中的计算机列表。

我希望脚本检查并执行两件事:

  1. 检查“someprogram”是否正在运行并报告该计算机的状态(某些输出显示“someprogram 未在 CVCORP-2D24DF 上运行”之类的内容)以及

  2. 如果该程序未运行,则启动它。

部分问题在于该程序不是 Windows 程序,所以我不知道它是否会像我发现的大多数 PS 脚本所要求的那样生成“服务名称”。

到目前为止,我有以下内容。我对 PowerShell 完全没有经验,因此我一直在借鉴我在互联网上找到的其他脚本以及前辈的经验。

在某些时候,一旦它手动工作,我想自动化它每隔几分钟检查一次程序状态。

我感激所有能得到的帮助。

$ComputerList = Get-Content 'C:\users\mine\Desktop\listofcomputers.txt'    
foreach ($computer in $ComputerList)
{    
  $ServiceName = 'someprogram'
  $arrService = Get-Service -Name $ServiceName    
  while ($arrService.Status -ne 'Running')
  {    
    Start-Service $ServiceName
    write-host $arrService.status
    write-host 'Service starting'
    Start-Sleep -seconds 60
    $arrService.Refresh()
    if ($arrService.Status -eq 'Running')
    {
        Write-Host 'Service is now Running'
    }    
  }    
}

相关内容