我是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
}
}
答案 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
}
}