重新启动服务并通过PowerShell

时间:2018-08-06 18:53:18

标签: powershell service scripting powershell-remoting

我是PowerShell的新手。我想创建一个脚本,该脚本将停止正在运行的服务,然后将其启动并显示该服务的状态,但是在合并它们时遇到了麻烦。目前,我可以使用“获取服务”来启动和停止服务以及分别检查其状态。有什么方法可以将它们组合成一个脚本。理想情况下,脚本将检查服务是打开还是关闭并执行if / else函数。 (例如,如果该服务已关闭,请使其保持关闭状态;如果该服务处于关闭状态,则关闭服务等)

$servers = Get-Content -Path "C:\Scripts\Servers.txt
$services = Get-COntent -Path "C:\Scripts\Services.txt   

foreach($server in $servers){
    foreach($service in $services){
        (Get-Service -computername $Servers -name $service).Stop()
        (Get-Service -computername $Servers -name $service).Start()    
         Write-Host (Get-Service -ComputerName S$Servers -Name $service).Status
    } 
}

1 个答案:

答案 0 :(得分:1)

  • 您可以选择使用.stop()方法还是
  • 将服务通过管道传递到Start-Service cmdlet。

未经测试

$servers = Get-Content -Path "C:\Scripts\Servers.txt"
$services = Get-COntent -Path "C:\Scripts\Services.txt"   

foreach($server in $servers){
    foreach($service in $services){
        (Get-Service -computername $Server -name $service).Stop()
        (Get-Service -computername $Server -name $service).Start()    
         Write-Host (Get-Service -ComputerName $Server -Name $service).Status
    } 
}

$servers = Get-Content -Path "C:\Scripts\Servers.txt"
$services = Get-COntent -Path "C:\Scripts\Services.txt"   

foreach($server in $servers){
    foreach($service in $services){
        Get-Service -ComputerName $Server -Name $service | Stop-Service
        Get-Service -ComputerName $Server -Name $service | Start-Service    
         Write-Host (Get-Service -ComputerName $Server -Name $service).Status
    } 
}