TI: Zeitgesteuerter Neustart der KocoBox mit Windows Boardmitteln

Um die KocoBox neuzustarten gibt es viele Methoden. Im professionellen Rechenzentrumsbetrieb bietet sich eine Überwachung über die SOAP Schnittstelle an, die im Fehlerfall über eine Power Delivery Unit den Strom kurz ausknipsen kann.

Im lokalen Praxiseinsatz stehen solche Methoden eher nicht zur Verfügung, daher besteht ggf. der Wunsch, das Gerät täglich prophylaktisch neuzustarten, um Fehlern vorzubeugen.

Um den Neustart ohne die Installation von Software durchführen zu können, bietet sich die Powershell als Programmiersprache für ein Skript an, welches den Neustart durchführt. Mit der Aufgabenplanung lässt sich dieses Skript regelmäßig aufrufen.

Für den Neustart wird die Konnektor Management Schnittstelle auf Port 9443 der KocoBox angesprochen. Der Neustart klappt daher nur mit einer lokalen KocoBox oder einer KocoBox im Rechenzentrumsbetrieb mit Zugang zur Konnektor Oberfläche.

 

Support

Sie können kommerziellen Support für dieses Programm für 250 € netto einmalig erwerben. Hiermit unterstützen Sie ebenfalls die Entwicklung zukünftiger, weiterer Tools dieser Art. Support beinhaltet:

  • Beratung
  • die zur Verfügungstellung von Updates
  • Unterstützung bei der Einrichtung auf einem Arbeitsplatz
  • gesetzliche Gewährleistung

Ohne Supportpaket können Sie aufkommende Fragen im Forum der ti-community.de oder vondoczudoc.de stellen und sich von der Community helfen lassen. Eine Gewährleistung für das Programm, seine Lauffähigkeit oder die Haftung für sich hieraus ergebener Probleme wird ohne Support nicht gegeben.

 

Vorgehen:

  • Kopiert den Quellcode in einen Editor
  • Tragt eure IP-Adresse und das koco-root Kennwort bei IP und Pass an der Stelle "Ab hier PowerShell"
  • Speichert Sie unter KonnektorReboot.cmd (Dateityp ändern von "Textdatei" auf "Alle Dateien")
@echo off
%windir%\System32\more +8 "%~f0" > "%temp%\%~n0.ps1"
powershell -NoProfile -ExecutionPolicy Bypass -File "%temp%\%~n0.ps1" %*
del %temp%\%~n0.ps1
exit /b
 
*** Ab hier PowerShell ***
$IP = "127.0.0.1"
$User = "koco-root"
$Pass = "GEHEIM"
 
#Reboot
$PerformAction = "reboot"
$Data = ''
 
# Login
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
$LoginUri = "https://" + $IP + ":9443/j_security_check"
$LoginBody = @{
    j_username = "$User"
    j_password = "$Pass"
}
$LoginResponse = Invoke-WebRequest -Uri $LoginUri -SessionVariable "Session" -Body $LoginBody -Method "POST" 
 
# Get X-Token
$BackendUri = "https://" + $IP + ":9443/administration/json-retrieve/infoservice"
$BackendResponse = Invoke-WebRequest -Uri $BackendUri -WebSession $Session -Headers @{'Content-Type' = 'application/json'}
$xtoken = (((($BackendResponse.Headers."Set-Cookie") -Split ";")[0]) -Split "=")[1]
 
# Perform Action
$PerformUri = "https://" + $IP + ":9443/administration/perform/" + $PerformAction
$PerformHeaders = @{
'Content-Type' = 'application/json'
'X-TOKEN' = "$xtoken"
}
$PerformResponse = Invoke-WebRequest -Uri $PerformUri -WebSession $Session -Body $Data -Method "POST" -Headers $PerformHeaders
echo $PerformResponse.content

Das Programm steht unter der BSD Lizenz.

 

  • Prüft mit einem Doppelklick, ob alles funktioniert

 

  • Legt über die Aufgabenplanung eine neue, "einfache Aufgabe" an. Verwendet die Zeitsteuerung, um die Aufgabe z.B. jeden morgen auszuführen und wählt als zu startendes Programm dieses Powershell-Skript.

 

Troubleshooting

Falls als Feedback statt ein "True" die Login-Seite zu sehen ist, hat der Login nicht geklappt.

In diesem Fall muss das verwendete Kennwort der KocoBox so abgeändert werden (oder ein weiterer Admin User mit entsprechendem Kennwort angelegt werden), dass im Idealfall als einziges Sonderzeichen die # enthalten ist.

Auch die Verwendung von nicht-ASCII Buchstaben (ä, ö, ü, ß) könnte zu einem Problem mit der Zeichenkodierung und einer falschen Übermittlung führen.