View Single Post
Old 04-11-2009, 11:52   #112
Goet
Senior Member
 
L'Avatar di Goet
 
Iscritto dal: Apr 2003
Messaggi: 815
Hola people

provo a dare il mio modestissimo contributo ad un thread a mio parere molto utile e per nulla dispersivo come questo.

Come ha già illustrato ezio in questo post, è possibile salvare lo stato dei servizi per poterlo poi richiamare comodamente in un secondo momento. E come ci fa giustamente notare, è una cosa molto utile. Specialmente se hai passato una vita a mettere a punto la tua configurazione ottimale e per qualche motivo (che non sia il cambio di sistema operativo ovviamente) devi formattare.

Mi permetto di suggerire un altro metodo per ottenere lo scopo, forse meno macchinoso e più automatico. È uno script batch che ho trovato gironzolando su google proprio alla ricerca di discussioni come queste

Ci tengo a precisare che non ne son l'autore: l'ho solo tradotto e "impaginato" per così dire. L'autore è My Digital Life. Purtroppo non ricordo il link dove l'ho trovato.

Dato a Cesare quel che gli spetta, procediamo:

1. raggiungete la pace dei sensi con 'sti benedetti servizi
2. create un nuovo documento di testo, cambiategli l'estensione da .txt in .bat, editatelo col vostro editor preferito ed incollateci dentro il seguente codice:

Codice:
TITLE Script di Backup dello Stato d'Avvio dei Servizi - di My Digital Life
cls
@echo off
@echo ==============================================================================
@echo Script di Backup dello Stato d'Avvio dei Servizi (C) 2008 My Digital Life 2008
@echo ==============================================================================
@echo.
@echo Questo script eseguira' il backup dello stato d'avvio di tutti i servizi
@echo correntemente usati.
@echo.
pause

REM Rilevamento data e ora corrente
for /f "tokens=1, 2, 3, 4 delims=-/. " %%j in ('Date /T') do set FILENAME=Servizi_%%j_%%k_%%l_%%m
for /f "tokens=1, 2 delims=: " %%j in ('TIME /T') do set FILENAME=%FILENAME%_%%j_%%k.bat

REM Rilevamento nome di tutti i servizi
sc query type= service state= all| findstr /r /C:"SERVICE_NAME:" >tmpsrv.txt
echo Backup dello Stato di Avvio dei Servizi nel file %FILENAME% in corso...

REM Backup dello stato di avvio dei servizi nel file batch
echo @echo Ripristino dello Stato dei Servizi salvato il %TIME% %DATE% >"%FILENAME%" 
echo @pause >>"%FILENAME%"

for /f "tokens=2 delims=:" %%j in (tmpsrv.txt) do @( sc qc %%j |findstr  START_TYPE >tmpstype.txt &&  for /f "tokens=4 delims=:_ " %%s in (tmpstype.txt) do @echo sc config  %%j start= %%s >>"%FILENAME%")
echo @pause >>"%FILENAME%"

del tmpsrv.txt
del tmpstype.txt

echo Stato d'Avvio dei Servizi salvato in %FILENAME%.
pause
3. salvate, chiudete e lanciate
4. seguite le semplici istruzioni a video (si tratta di premere due volte un tasto qualsiasi della tastiera) e attendete che il batch faccia il suo lavoro. La cosa non è immediata: circa 30 secondi sulla mia carriola
5. quando ha finito genera un file .bat chiamato:

Servizi_gg_mm_aaaa__hh.mm_.bat

dove, come avrete capito, gg_mm_aaaa è la data in cui è stato generato, e hh.mm è l'ora. Analizziamo dunque questo output:

Codice:
@echo Ripristino dello Stato del Servizio salvato il 11.15.06,37 04/11/2009  
@pause 
sc config   ALG start= DISABLED 
sc config   AppMgmt start= DEMAND 
sc config   aspnet_state start= DEMAND 
sc config   AudioSrv start= AUTO 
sc config   BITS start= DISABLED 
sc config   Browser start= DISABLED 
sc config   ClipSrv start= DISABLED 
sc config   clr_optimization_v2.0.50727_32 start= DEMAND 
sc config   cmdAgent start= AUTO 
sc config   COMSysApp start= DEMAND
eccetera...
anche questo è estremamente intuitivo. Prima della parola "start" c'è l'identificativo di un servizio, e dopo l'uguale c'è il suo tipo di avvio, che giusto per amor di precisione riporto:

- DEMAND = Manuale
- DISABLED = Disabilitato
- AUTO = Automatico

Ora che avete questo file siate coraggiosi e fate La Prova: impostate a cavolo lo stato d'avvio dei servizi, riavviate, lanciate il file e riavviate di nuovo....

...figo eh?

Ovviamente è possibile cambiare il valore dopo l'uguale per ogni stringa, così da modificare lo stato d'avvio dei servizi. È possibile avere quindi diversi .bat con diverse configurazioni. Magari a chi ripara pc torna utile.

Dulcis in fundo, se non si sa come ricondurre l'identificativo del servizio al nome del servizio stesso... beh, significa che non si ha smanettato abbastanza coi servizi e si ha bisogno di conoscerli meglio
ad ogni modo con una ricerca su google si dovrebbe esser capaci di risalire. Male che vada, si cambia nel batch il valore dopo l'uguale (cioè lo stato d'avvio) del servizio che non si riesce a individuare, poi si lancia il batch e si becca così il servizio che ha cambiato lo stato.

Goet è offline   Rispondi citando il messaggio o parte di esso