DShutdown (Dimio's ShutDown)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

La versione aggiornata si trova al seguente Link:

dimio.altervista.org



DESCRIZIONE:
~~~~~~~~~~~~

DShutdown è un'utilità (Freeware) che permette di programmare lo spegnimento del PC locale e/o di altri PC remoti in una LAN su sistemi Windows 9x/NT/2000/XP/2003/VISTA:

1. Dopo un periodo di tempo stabilito.
2. A un'ora specificata.
3. A un'ora specificata di un particolare giorno della settimana/mese/anno.
4. Quando un programma in esecuzione termina.
5. Quando l'utilizzo della CPU da parte di un processo (o di tutti) oltrepassa un dato livello per un dato tempo.
6. Quando l'attività Internet (upload e/o download) si riduce sotto certi valori per un dato tempo.
7. Quando cade la linea del modem, o di un'altra periferica analoga (scheda di rete etc.).
8. Quando l'utente rimane inattivo per uno specificato lasso di tempo.
9. Quando un pixel sullo schermo cambia il suo colore.
10. Quando un altro programma (o l'utente stesso) fa una richiesta di shutdown.



SHUTDOWN LOCALE:
~~~~~~~~~~~~~~~~

Basta spuntare "LocalHost" nella lista degli IP da spegnere e il PC locale si spegnerà con le opzioni selezionate.



SHUTDOWN REMOTO:
~~~~~~~~~~~~~~~~

Il modo più semplice è quello di avviare sul PC locale DShutdown, e sul PC remoto RDShutdown,
(opzionalmente RDShutdown può essere installato come servizio utilizzando per questo il programma "Install RDShutdown as service.exe", in questo modo lo ShutDown remoto funzionerà anche se non si è effettuato il login).

Altrimenti è necessario che DShutdown sia in esecuzione su entrambi i PC:
In quello da spegnere, andrà spuntato "Allow remote shutdown of this PC" (oppure mettere nella linea di comando, il parametro /SERVERMODE).

Nell'altro, invece, bisognerà inserire in "Elenco dei PC da spegnere" gli IP dei PC che si vogliono spegnere (questo può anche essere ottenuto con la linea di comando).

Per ogni IP remoto si può selezionare una combinazione di settaggi (logoff, reboot...) personalizzata per quel dato PC (i settaggi verranno inviati insieme al comando di spegnimento).

Lo ShutDown remoto (volendo) può essere protetto da una Password, giusto per evitare che senza autorizzazione si possano spegnere i computer degli altri ;-)

Se si utilizza un FireWall può essere necessario creare una regola che permetta a DShutdown di usare la porta 4444.

Nella lista degli IP remoti si possono anche inserire dei commenti, tipo: "192.168.55.1 (Server K6)", basta che tra l'IP e i commenti ci sia almeno uno spazio.



SHUTDOWN REMOTO ATTRAVERSO INTERNET:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Se si dispone di un Router in grado di supportare l'uPnP e si conosce l'IP esterno del Router stesso, è possibile spegnere un computer inviando il comando tramite Internet.
Per fare ciò è necessario spuntare la voce apposita nel menu di RDShutdown oppure, se è DShutdown che fa da server, bisognerà spuntare l'opzione uPnP. In questo modo viene mappata automaticamente una porta esterna sul Router in grado di recepire e reindirizzare il comando di spegnimento inviato da DShutdown.



TIPO DI SHUTDOWN:
~~~~~~~~~~~~~~~~~

1. "LOGOFF" fa il semplice logoff.

2. "SHUTDOWN" su Windows NT fa comparire la scritta "Ora è possibile spegnere il computer" cioè effettua lo shutdown senza il Power Off. Su Windows 9x, se l'APM/ACPI è supportato, genera il Power Off, altrimenti si comporta come su NT.

3. "POWER OFF" (NT only) Spegne il computer completamente (toglie la corrente).

4. "REBOOT" Riavvia il PC.

5. "FORCE" invece di chiedere ai processi di terminare, li termina immediatamente (di solito si usa solo in casi particolari).
Su NT5 può essere combinata con l'opzione "FORCE AFTER WAIT" per potenziarne gli effetti.

6. "FORCE IF HUNG" (2000/Xp/2003/VISTA only) Chiede ai processi di terminare, ma se questi, dopo un dato periodo, non rispondono li termina.
E' un'opzione simile alla "FORCE AFTER WAIT", ma è totalmente gestita da windows, per cui, pur garantendo con meno sicurezza che il PC si spegnerà (manca della potenza della "FORCE AFTER WAIT"), produce uno shutdown perfettamente pulito (visto che è windows a gestirlo), è l'opzione da preferirsi nella maggior parte dei casi.

7. "FORCE AFTER WAIT" serve per ottenere uno ShutDown regolare e sicuro al 100%:
L'opzione permette di avere la certezza che un PC (locale o remoto) si spegnerà come avviene quando si specifica l'opzione "FORCE" (su NT5 anche di più) ma, al contrario di questa, permette ai programmi di chiudersi regolarmente.
Infatti a volte capita che un programma si blocchi, che annulli volontariamente lo shutdown o che chieda ostinatamente delle conferme di chiusura rendendo così impossibile lo spegnimento.
L'opzione genera i seguenti passaggi:
- Manda il segnale di chiusura standard a tutti i processi attivi.
- Attende 3 secondi per dargli tempo di terminare.
- Simula una richiesta di chiusura da parte del sistema ai processi rimasti attivi (in questo modo anche i processi che chiedevano conferme si chiudono).
- Attende 2 secondi per dare anche a questi il tempo di terminare.
- genera uno ShutDown forzato. (ma ormai da forzare sono rimasti solo eventuali processi bloccati).
Su NT5 può essere combinata con l'opzione "FORCE", in questo caso, nella fase finale, lo shutdown forzato sarà ancora più energico dato che fa uso di funzioni più a basso livello.

8. "STAND BY" mette il PC in Stand By.

9. "HIBERNATE" mette il PC in ibernazione (se abilitata).

10. "HANGUP" interrompe tutte le connessioni RAS attive (utile per disconnettere il modem da Internet da remoto senza spegnere il PC).

11. "DISABLE LAN ADAPTERS" disabilita le schede di rete attualmente in funzione.

12. "SERVER LESS MODE" serve a spegnere i PC remoti senza la necessità di installare su di essi "RDShutdown" o "DShutdown" configurato come server. E'un'opzione più limitata che, per funzionare, richiede che l'utente col quale si è loggati esista anche sul PC remoto e possieda i privilegi di shutdown. Su Win9x/NT4, perché funzionino alcune opzioni (in particolare PowerOff e LogOut) è necessario scaricare e installare il pacchetto WMI dal sito Microsoft.

13. "CANCEL IF USER IS LOGGED" (2000/XP/2003/VISTA only) permette di annullare lo shutdown di un PC remoto se su di esso c'è un utente loggato (serve per evitare di spegnere un PC remoto se qualcuno ci sta lavorando sopra).

14. "START PROGRAM" Al momento dello ShutDown avvia un programma o apre un file specificato. 

15. "WRITE LOG" prima di spegnere il PC locale scrive un file di LOG contenente la data, l'ora e le opzioni di shutdown selezionate. Ogni volta che il file di log raggiunge i 100KB viene azzerato (ma in pratica ciò non accade mai).

16. "SOUND ADVISE" Genera un avviso sonoro di 5 secondi prima dello shutdown. Quindi, se si deselezionano le altre opzioni (Reboot, PowerOff...), DShutdown può essere utilizzato semplicemente come un Timer sonoro.

17. "ALARM CLOCK" Genera un avviso sonoro simile a quello del "SOUND ADVISE" ma più prolungato (minuti), in modo da poter fungere da sveglia.

18. "EXIT PROGRAM" In questo modo DShutdown termina quando scatta il timer. Questo può essere utile, ad esempio, se si vuole che DShutdown ad una certa ora avvii un programma, generi un avviso sonoro o spenga dei PC remoti senza rimanere in esecuzione dopo questi eventi.

19. "WAKE ON LAN" Per accendere uno o più PC remoti che supportino questa funzione. E' necessario che, quando si seleziona questa opzione la prima volta, il PC remoto sia acceso, altrimenti DShutdown non riuscirà ad ottenere il MAC-Address del PC remoto e visualizzerà un messaggio di errore.

20. "WAKE UP" Questa opzione consente di "risvegliare" il PC da una modalità di sospensione come l'ibernazione o il "suspend to RAM". Essa può essere utilizzata come una semplice sveglia, oppure per ottenere uno shutdown completo anche nel caso che il PC locale si trovi in una modalità di sospensione.

I settaggi consigliati per un uso normale sono:
Windows 2000/XP/2003/VISTA ---> "POWEROFF" + "FORCEIFHUNG"
Windows NT4                ---> "POWEROFF"
Windows 9x                 ---> "SHUTDOWN"



OPZIONI GENERALI:
~~~~~~~~~~~~~~~~~

1. "Auto Start" Se dopo aver impostato le varie opzioni si clicca su "Auto Start", al successivo reboot, DShutdown si avvierà automaticamente con quelle opzioni specifiche. In questo modo è possibile evitare di utilizzare la linea di comando (che è più versatile ma anche più complessa).

2. "Set Default" Imposta le opzioni attualmente selezionate come default per la prossima volta, compresi i comandi che determinano lo shutdown (x es. lo spegnimento tra 10 minuti).

3. "Save settings on exit" Salva i settaggi, ma non i comandi che determinano lo shutdown.



OPZIONI SPECIALI:
~~~~~~~~~~~~~~~~~

1. Possibilità di spegnere il PC quando un altro programma termina (utile per spegnere il PC al termine della compressione di molti files).

2. Possibilità di ottenere lo ShutDown quando cade la connessione (no NT4) o quando il traffico internet si riduce oltre una data soglia per un dato tempo (utile per spegnere il PC al termine di un download).
Ora è anche possibile scegliere la periferica di connessione da monitorare (Modem Analogico, ISDN, ADSL, Scheda di rete, dispositivi virtuali etc.)

3. Possibilità di ottenere lo ShutDown  quando l'utilizzo della CPU da parte di un processo sale o scende sotto un livello stabilito per un periodo di tempo specificato. Utile, ad esempio, per spegnere il PC dopo un operazione di encoding video.

4. Possibilità di spegnere il PC quando uno specificato pixel dello schermo cambia colore per un dato periodo di tempo, utile, ad esempio, per far seguire lo shutdown ad un particolare evento sullo schermo, come una finestra che si chiude, un messaggio che compare o un'icona che cambia colore...



CONDIZIONE AND:
~~~~~~~~~~~~~~~

A lato di ognuna delle principali condizioni di shutdown è presente un piccolo pulsante AND, esso serve ad indicare che tale condizione deve essere necessariamente soddifatta perchè possa avvenire lo shutdown.
Per esempio, poniamo che si attivino in contemporanea lo spegnimento alle ore 10:00 e il monitoraggio degli utenti inattivi per 2 minuti, entrambi con l'opzione AND spuntata. Ora, se l'utente non è al PC per più di 2 minuti, lo shutdown non avverrà, perchè la condizione del timer delle 10:00 non è ancora stata soddisfatta, una volta passato l'orario indicato, se in quel momento c'è un utente al PC lo shutdown verrà altresì rimandato perchè in questo caso è la condizione del monitoraggio degli utenti inattivi a non essere soddisfatta, infine, se l'utente si allontana dal PC per più di 2 minuti avverrà lo shutdown perchè tutte le condizioni vincolate dall'AND saranno soddisfatte (le ore 10:00 sono passate e non c'è stata nessuna attività al PC per più di 2 minuti dopo le 10:00).



GENERAZIONE AUTOMATICA DELLA LINEA Di COMANDO:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Per creare in maniera automatica una linea di comando con le opzioni desiderate procedere come segue:

1. Impostare tutte le opzioni desiderate nell'interfaccia grafica.

2. Cliccare col Destro sull'icona di DShutdown nella TrayBar e scegliere la voce "Create Shortcut do Desktop with this Settings".

Verrà creato automaticamente sul Desktop un collegamento a DShutdown con la linea di comando atta a ricreare esattamente tutte le opzioni selezionate, per cui basterà fare un doppio click sul collegamento per attivare DShutdown con le opzioni desiderate.
Questo sistema è molto versatile e consente ad esempio di creare tutta una serie di modalità di shutdown per le situazioni più disparate, ad esempio: "Spegni il pc per download inferiori a 10kb/sec" oppure "Avviso sonoro quando il pc ha finito di elaborare, cioè per occupazione CPU inferiore al 10%" e via così.
Va comunque considerato che, un link, non può avere una linea di comando più lunga di 256 caratteri, per cui, se si selezionano troppe opzioni, la linea di comando rischia di venire troncata. In ogni caso, quando si crea il link sul desktop, la linea di comando viene automaticamente copiata negli appunti, per cui questo sistema si può usare anche solo per ottenere la linea di comando corrispondente alle opzioni attualmente selezionate.



LINEA Di COMANDO:
~~~~~~~~~~~~~~~~~

Volendo è possibile dare le impostazioni nella linea di comando (per esempio in un file batch).

In realtà nella maggior parte dei casi si può ottenere lo stesso risultato impostando i vari parametri e cliccando poi su "AutoStart", infatti quando si seleziona "AutoStart", la linea di comando inserita nell'AutoStart viene anche copiata a scopo informativo nel ClipBoard (questa funzione può essere usata per creare delle linee di comando personalizzate in automatico).


SINTASSI:
~~~~~~~~

DShutdown.EXE [/Hn] [/Mn] [/DAYn] [/MONTH-n1-n2...] [IP:pcname] [/TYPE] [OPTIONS] [/MODE]

Mn:	n = Minuti
Hn:	n = Ore
DAYn:	n = Giorno della settimana (Mon-Sat) o del mese (1-31)
MONTHn: n = Mese (Jan-Dec | All)
IP:pcname: pcname = nome (o indirizzo IP) di un PC remoto
TYPE:	LOGOFF
	SHUTDOWN
	REBOOT
	FORCE
	POWEROFF
	FORCEIFHUNG
	HIBERNATE            
	STANDBY
	FORCEAFTERWAIT
	HANGUP
	DISABLELAN
	NOPOPUP	
	CANCELIFUSERISLOGGED
	STARTPROGRAM "ProgramPath | FilePath"
	WRITELOG
	SOUNDADVISE
	EXITPROGRAM
	WAKEONLAN:"MAC-Address"
	WAKEUP
OPTIONS:	SAVEONEXIT
	SOUNDSTART
	NORESOLUTIONCHECK
	DIFFERENTPORTSFORCLIENTANDSERVER
MODE:	SHUTDOWNAFTER|SHUTDOWNAT|SHUTDOWNON
          	NOW
	HIDDEN
	SERVERMODE
	NOCOUNTDOWN
	INTERCEPTSHUTDOWN



OPZIONI DA LINEA DI COMANDO:
~~~~~~~~~~~~~~~~~~~~~~~~~~

/AFTERTIME specifica che lo ShutDown si avrà dopo un tempo specificato (Default).

/ATTIME specifica che lo ShutDown si avrà all'ora specificata

/ONDAY specifica che lo ShutDown si avrà in un giorno specificato (della settimana o del mese) e in un ora specificata.
E' possibile spegnere il computer un dato giorno di ogni mese specificando "All" al posto di "Jan", "Feb", "Mar"... 

/NOW Genera uno ShutDown immediato.

/NOCOUNTDOWN farà in modo che venga saltato il conteggio finale (10 sec) e il popup della finestra in primo piano.

/HIDDEN farà in modo che il programma giri completamente in BackGround (senza nemmeno apparire nell'icona della TrayBar), utile per impedire che l'utente incapace lo disattivi senza volerlo (/HIDDEN comprende /NOCOUNTDOWN).

/SERVERMODE significa che il programma si metterà in attesa per lo ShutDown remoto.

/INTERCEPTSHUTDOWN nel momento in cui viene spento il PC locale, in automatico, vengono spenti anche quelli remoti.

/NOPOPUP nel momento dello shutdown (locale o remoto) non compare in primo piano la finestra di DShutdown o il Balloon di RDShutdown.

/IP:pcname Serve per spegnere tramite linea di comando un PC remoto, tutte le opzioni TYPE che seguiranno saranno riferite ad esso, per cui, per esempio, se si vuole spegnere un PC remoto e riavviarne un'altro si dovrà impostare: /NOW /IP:192.168.55.2 /poweroff /IP:PcAthlon /reboot

/NORESOLUTIONCHECK fa si che all'avvio non venga fatta la verifica della risoluzione minima necessaria per avviare il programma.



ESEMPI DI SINTASSI:
~~~~~~~~~~~~~~~~~~~

1. Spegnimento immediato del PC locale:
/NOW /PowerOff
 
2. Spegnimento del PC locale fra 5 ore e 8 minuti:
/h5 /m8 /PowerOff

3. Spegnimento immediato di un PC remoto:
/NOW /IP:192.168.55.2 /poweroff

4. Spegnimento del PC locale alle ore 20:30:
/AtTime /h20 /m30 /PowerOff

5. Nasconde l'icona del programma e si mette in attesa per uno ShutDown remoto:
/HIDDEN /SERVERMODE

6. Spegnimento alle 13:00 del PC locale e riavvio di due PC remoti:
/ATTIME /h13 /poweroff /IP:192.168.55.2 /reboot /IP:PcAthlon /reboot



POSSIBILI PROBLEMI:
~~~~~~~~~~~~~~~~~~~

L'opzione "INTERCEPT SHUTDOWN, THEN AS SELECTED" non funziona se lo spegnimento da intercettare è uno spegnimento forzato, infatti in quel caso tutti i programmi (compreso DShutdown) vengono terminati di colpo senza alcuna possibilità di intervento/intercettazione.

Lo spegnimento automatico (cioè non la schermata "Ora è possibile spegnere il computer", ma proprio il Power Off) funzionerà solo su un PC moderno che supporti lo spegnimento automatico con l'APM/ACPI attivato da BIOS (comunque se quando si esce normalmente da windows il PC si spegne completamente vuol dire che l'APM/ACPI è supportato).

Quando si seleziona "Spegnimento di questo PC da remoto", il programma si mette in attesa del comando di spegnimento sulla porta 4444. Se tale porta è occupata da un altro programma (improbabile ma possibile) non sarà possibile selezionare tale casella.



NOTE:
~~~~~
Il programma utilizza la tecnologia UPX (http://upx.sourceforge.net/) per aumentarne la portatilità.



LICENZA:
~~~~~~~~
Il programma viene distribuito con la licenza Freeware. 
Questo, tradotto in due parole, significa: il software è gratuito e potete usarlo come vi pare, anche integrarlo in pacchetti commerciali se volete. Le uniche cose che non sono permesse sono la decompilazione e la modifica dei sorgenti.



PROGRAMMATORI:
~~~~~~~~~~~~~~

Dimitrios Coutsoumbas (Dimio)
E-MAIL : cyberdimio@gmail.com
HOME   : http://dimio.altervista.org/



BETA-TESTERS (In alphabetical order):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fr3ddie (il più efficiente beta-tester del mondo :-)
Guido2mila
Kanarina
The Fish
WhiteForest