Con Powershell, grazie ai comandi Get-Service e Start-Service, possiamo controllare tutti quei servizi il cui avvio è impostato ad automatico e riavviarli nel caso in cui qualcuno di essi sia fermo.
Meglio ancora è programmare un controllo giornaliero che compia per noi questa azione e grazie all’Utilità di pianificazione è possibile schedulare tale attività.
Ecco come fare:
Create un file AvviaServiziAutomatici.xml con il blocco note come qui di seguito indicato
<?xml version="1.0" encoding="UTF-16"?> <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Description>Lo script powershell avvia tutti i servizi arrestati che hanno la modalità di avvio automatico settata</Description> </RegistrationInfo> <Triggers> <CalendarTrigger> <Enabled>true</Enabled> <ScheduleByDay> <DaysInterval>1</DaysInterval> </ScheduleByDay> </CalendarTrigger> </Triggers> <Principals> <Principal id="Author"> <LogonType>Password</LogonType> <RunLevel>HighestAvailable</RunLevel> </Principal> </Principals> <Settings> <MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy> <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries> <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> <AllowHardTerminate>true</AllowHardTerminate> <StartWhenAvailable>false</StartWhenAvailable> <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> <IdleSettings> <StopOnIdleEnd>true</StopOnIdleEnd> <RestartOnIdle>false</RestartOnIdle> </IdleSettings> <AllowStartOnDemand>true</AllowStartOnDemand> <Enabled>true</Enabled> <Hidden>false</Hidden> <RunOnlyIfIdle>false</RunOnlyIfIdle> <WakeToRun>false</WakeToRun> <ExecutionTimeLimit>PT1H</ExecutionTimeLimit> <Priority>7</Priority> </Settings> <Actions Context="Author"> <Exec> <Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command> <Arguments>-command " & {get-service | where {($_.status -eq 'stopped') -and ($_.starttype -eq 'Automatic')} | Start-Service}"</Arguments> </Exec> </Actions> </Task>
Quindi aprite l’Utilità di Pianificazione (potete farlo anche lanciando il comando taskschd.msc) e nel pannello Azioni, presente a destra, cliccate su Importa attività. Confermate il tutto ed inserite, quando richiesto, le credenziali di un amministratore del server.
Avrete così una schedulazione giornaliera che riavvia automaticamente i vostri servizi fermi.