Hoe kan ik services controleren?

Gewijzigd op Wo, 19 Aug om 4:14 PM

Via de taakplanner kan men actief bewaken van services inschakelen.

Voorbeeld: Controle PitaneBSA CWB


Taakplanner -> nieuwe taak


Naam: Controle PitaneBSA CWB


Open Taakplanner (taskschd.msc) en kies Taak maken.... Geef hem bijvoorbeeld de naam Controle PitaneBSA CWB en vink Met hoogste bevoegdheden uitvoeren aan. Laat hem uitvoeren onder een Windows-account dat voldoende rechten heeft om services te starten.


Maak vervolgens een trigger die dagelijks start en stel bij Geavanceerde instellingen in: Taak elke 5 minuten herhalen gedurende 1 dag.


Programma/script: 

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe


Argumenten toevoegen: 

-NoProfile -NonInteractive -ExecutionPolicy Bypass -File "C:\Scripts\Check-PitaneBSA_CWB.ps1"


Beginnen in:

C:\Scripts


Maak een map aan op de server: C:\Scripts


Maak daarin het bestand: 

Check-PitaneBSA_CWB.ps1


Inhoud (voorbeeld):


$ServiceName = "PitaneBSA_CWB"

$LogFile = "C:\Scripts\PitaneBSA_CWB.log"


$Service = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue


if ($null -eq $Service) {

    Add-Content $LogFile "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - Service niet gevonden."

    exit 1

}


Add-Content $LogFile "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - Status: $($Service.Status)"


if ($Service.Status -eq "Stopped") {


    Add-Content $LogFile "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - Service is gestopt. Startpoging."


    try {

        Start-Service -Name $ServiceName -ErrorAction Stop

        Start-Sleep -Seconds 5


        $Service.Refresh()


        Add-Content $LogFile "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - Status na start: $($Service.Status)"

    }

    catch {

        Add-Content $LogFile "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - FOUT: $($_.Exception.Message)"

    }

}



Als de taak in Taakplanner staat op “Alleen uitvoeren als gebruiker is aangemeld”, dan draait die taak alleen wanneer dat specifieke Windows-account actief is ingelogd.


Voor servicebewaking is dat meestal niet wenselijk. Als niemand is aangemeld, of dat account afmeldt, kan de controle op PitaneBSA_CWB stoppen. Dan wordt de service dus mogelijk niet automatisch opnieuw gestart.


Voor een server/servicecontrole zou ik eerder kiezen voor “Uitvoeren ongeacht of gebruiker wel of niet is aangemeld” en “Met hoogste bevoegdheden uitvoeren”. Nog robuuster is de taak onder het lokale SYSTEM-account te laten draaien, zolang het script alleen lokale zaken doet zoals deze Windows-service controleren en starten.



Was dit artikel nuttig?

Dat is fantastisch!

Hartelijk dank voor uw beoordeling

Sorry dat we u niet konden helpen

Hartelijk dank voor uw beoordeling

Laat ons weten hoe we dit artikel kunnen verbeteren!

Selecteer tenminste een van de redenen
CAPTCHA-verificatie is vereist.

Feedback verzonden

We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren