我需要编辑一个脚本。在两台Windows Server 2008 R2上有一个服务。它们是负载均衡的。我需要它,所以当我运行在主服务器和辅助服务器上启动服务的脚本时,所以在它启动两个服务器上的服务之前,它会出去检查以确保主服务器已启动并运行,然后像正常一样继续启动两个服务器上的服务。
# Start Appian
function StartAppian {
$APNSVC = Get-Service -Name $AppianService
if (!$APNSVC) {
Write-Host "Appian Service does not exist"
return
}
# Check to see if Appian's service is already started
if ($APNSVC.Status -eq "Running") {
if ($LB) {
if ($MULEAPNSVC.Status -eq "Running") {
Write-Host "Appian Service on the Load Balanced Server already is started!" -ForegroundColor Yellow
return
}
}
Write-Host "Appian Service already is started!" -ForegroundColor Yellow
Read-Host "Press any key to return"
return
}
# Check if DEV's Process Design has a writing_*.kdb file and delete it
if ($Server -eq "DEV") {
#gw1
if (Test-Path $APPIAN_HOMEserverprocessdesigngw1writing_*.kdb) {
Write-Host "Removing writing_*.kdb from GW1" -ForegroundColor Yellow
Remove-Item $APPIAN_HOMEserverprocessdesigngw1writing_*.kdb
}
#gw2
if (Test-Path $APPIAN_HOMEserverprocessdesigngw2writing_*.kdb) {
Write-Host "Removing writing_*.kdb from GW2" -ForegroundColor Yellow
Remove-Item $APPIAN_HOMEserverprocessdesigngw2writing_*.kdb
}
}
Write-Host "Starting Appian"
# Place the name of the service here to start for Appian
Start-Service $AppianService
Notify("StartAppian")
if ($LB) {
(Get-Service $MULEAPNSVC.Name -ComputerName $MULE).Start()
Write-Host "Starting Mule's Appian" -ForegroundColor Magenta
}
cmd.exe "/C $APPIAN_HOMEserver_scriptsdiagnosticcheckengine.bat -s > $logdirStartup.log"
# These lines check the Startup log for fatals and errors at the beginning
$fatals = Select-String FATAL $logdirStartup.log
$errs = Select-String ERROR $logdirStartup.log
# Check for errors and fatals again
$fatals = Select-String FATAL $logdirStartup.log
$errs = Select-String ERROR $logdirStartup.log
Write-Host "Still warnings or Errors in CE" -ForegroundColor Yellow
# Increment times
$times = $times + 1
# If times > threshold, email out error message
if ($times -gt $threshold) {
SendAlert("There is a problem with Appian - It won't start")
Write-Host "There was a problem with Appian..it took too long to start - emailing alert" -ForegroundColor Red
Read-Host "Press any key to exit"
}
}
Write-Host "Appian Started" -ForegroundColor Green
Read-Host "Press any key to return"
}
您可以在脚本开始处使用一个简单的Test-Connection来完成。
if ($ping = Test-Connection -ComputerName PrimaryServerName -Quiet) {
Write-Host "Host avalible"
}
else {
Write-Host "Host unavalible"
Exit
}
还有其他建议吗?
if (Test-Connection ServerName -Count 1 -Quiet) {
Write-Host "Host avalible"
}
else {
Write-Host "Host unavalible"
Exit
}
这不起作用。我想让它测试服务器是否启动,如果不是,退出脚本,如果是,继续使用脚本。在ISE上测试时,它可以工作,但是当我启动脚本时,它不能