我有一個簡單的遠程重新啓動服務器代碼。我正在使用Invoke Command在另一個服務器上執行腳本塊。問題是如何重新啓動此服務器,並確保在重新啓動後,它是?如何遠程重新啓動服務器並確保它已啓動
我知道invoke命令會打開會話,但重啓後會關閉。如何繞過這個問題?
代碼
try {
$RestartResult = Invoke-Command -ComputerName $AppServer -ScriptBlock
{
Write-EventLog –LogName Application –Source "Powershell restart script" –EntryType Information –Message "Server restart initiated"
Restart-Computer -Wait -For WMI -ea Stop -Delay 30
}
}
catch {
# Get the exception message.
$RestartResult = $_.Exception.Message
}
if ($error) {
Write-Log ERROR -Message $RestartResult
}
else {
Write-Log INFO -Message 'Host $AppServer has been restarted'
}
一旦您的腳本執行了重新啓動,您可以嘗試另一個嘗試重新連接的{} catch {} - 如果成功,您知道服務器已備份。 –
取決於「結束」的含義。有時候ping就夠了。有時你必須確定一些服務正在運行... – fdafadf
我只想檢查是否可以在此主機上建立PowerShell會話,假設我想嘗試在$ hostname服務器上執行如下操作: Invoke-Command -ComputerName $ hostname -ScriptBlock {1} 如果它可以被使用,我想嘗試2次以上,直到可能或計數器嘗試顯示3 – Ozzy