Visualizza versione completa : [ALTRO] Schedulare spegnimento di TUTTI i pc della lan
Tecno214
30-03-2007, 15.51.02
Avrei bisogno di sapere come compormi uno script che permetta, una volta schedulato lato server, di spegnere TUTTI i client della mia rte inavvertitamente rimasti accesi..
Mal Command Prompt usando il seguente comando si riesce a spegnare un pc
shutdown -s -m \\(nomecomputer) /t 60 (è il tempo in secondi) /f (forza tutto).
Non ho però capito come compormi lo script (il file bat) per farlo funzionare visto che se inserisco il rigo sopra in un .txt e lo rinomino in .bat non funziona...
Script che poi manderei in schedulazione ad orario x sul server..
In più non ho capito come inserire all'interno del file il comando per spegnere PIU pc in un botto solo, server esclusi!!
Grazie a tutti!
Tecno214
02-04-2007, 10.47.21
Mi rispondo da solo visto che ho risolto e che casomai il mio contributo sarà utile a qualcuno..
In una semplicissima batch ho messo
shutdown -s -m \\(nomeremotopc1) /t 160 (tempo spegnimento) /c (commento) /f (forza tutto)
shutdown -s -m \\(nomeremotopc2) /t 160 (tempo spegnimento) /c (commento) /f (forza tutto)
shutdown -s -m \\(nomeremotopc3) /t 160 (tempo spegnimento) /c (commento) /f (forza tutto)
....ecc per tutti i pc.
Poi l'ho schedulata sul server alle ore 20:30 e tutto sembra funzionare per tutti i pc loggati al dominio.
Non funziona invece per gli utenti con XP Home, non loggati quindi, per i quali sto cercando un'altra strada da percorrere (credo che sia un problema di credenziali visto che non essendo loggati al dominio il comando shutdown.exe /f (force) non ha sufficenti autorizzazioni per procedere!
Tecno214
02-04-2007, 12.33.16
Detto questo la mia richiesta si modifica...
Qual'è la sintassi per includere un determinato range di ip senza star a digitare tutto l'elenco ip riga per riga?
hai provato DShutdown?
http://www.wintricks.it/news2/article.php?ID=13550
Xtefano
02-04-2007, 14.32.40
Ahem .... http://www.wintricks.it/forum/showthread.php?t=117121
... e non è neanche tanto vecchio ...
Byez
Stefano
Tecno214
02-04-2007, 16.39.17
Grazie....
Mi scuso per non aver usato il cerca, sinceramente non credevo si trovasse qualcosa di simile alla mia richiesta..
Allora, lo script di P8257 postato sul thread indicatomi funziona alla perfezione.
Riassumendo lo script è questo:
@eco off
NET VIEW > list
FOR /F "eol=; tokens=1* delims=, " %%i in (list) do shutdown -m %%i -s
del list
Adesso si pone il secondo problema, già affrontato sullo stesso thread, che ho provato sa solo a fare senza successo...
Ho DUE SERVER che NON devono spegnersi con il comando indicato...
Ho provato ad integrare il rigo postato da Xtefano vale a dire
if /I not %%v==\\SERVER shutdown ....
ma non ho capito come farlo con successo...
Io ho fatto così..
@eco off
NET VIEW > list
FOR /F "eol=; tokens=1* delims=, " %%i in (list) if /I not %%v==\\SERVER and \\SERVER2 do shutdown -m %%i -s
del list
Si crea il file "list" contenente ciò che è attivo in rete poi più nulla!!
Chi mi aiuta??
GRazie e scusatemi di nuovo per il mancato uso del CERCA!
Per favore, modifica il titolo della discussione seguendo il regolamento (http://www.wintricks.it/forum/announcement.php?f=21).
Grazie per la collaborazione :)
Tecno214
02-04-2007, 17.23.58
Ho provato a modificare il thread di apertura aggiungendo nel titolo (DOS) Batch - Seguito dall'oggetto ma, quando sono andato a rivedere la modifica non mi viene visualizzata.
A questo punto chiedo ad un mod se può aggiungere al titolo il tag giusto visto che non ci sono riuscito.
Grazie della collaborazione!
ok, ho modificato io. La prossima volta attento ad inserire il tag corretto (tra quelli presenti nel thread citato) al momento della creazione del thread stesso ;)
Xtefano
03-04-2007, 09.03.40
Comoda la pappa cotta, eh ? ;)
Comunque ... credo di non essermi mai posto il "problema" di AND e OR nei batch ... ma così al volo non mi sembra ci sia (guarda l'help IF /?), per cui ... se non si fa in un modo si fa in un altro ...
FOR /F "eol=; tokens=1* delims=, " %%i in (lista) do (
if /I not %%i==\\SERVER1 (
if /I not %%i==\\SERVER2 shutdown -m %%i -s
)
)
HTH
Byez
Stefano
Tecno214
03-04-2007, 09.39.00
(Y) GRazie a Kjow per la comprensione....
Non è un porblema di "pappa cotta" Xtefano, è proprio un problema che capisco veramente poco di batch, variabili e quant'altro quindi, dato che la sintassi per certi comandi è MOLTO PRECISA, rischio di buttar via una mattinata solo perchè una virgola o una parentesi è fuori posto.
Grazie del tuo contributo, provero in V.M. lo script che mi hai postato e ti farò sapere!!
Tecno214
03-04-2007, 18.58.26
Lo script che mi hai postato è OK!
Ti ringrazio..
Con l'occasione, si trova in rete una guida valida per neofiti per cominciare a capire qualcosa delle variabili?
Xtefano
04-04-2007, 08.41.51
(Y)
beh ... per vedere come usare le variabili puoi usare SET /? (tutti i comandi hanno un /? ... prova ...) poi in questo forum ed in rete ci sono moltissime informazioni ... l'argomento è stato più volte toccato....
Byez
Stefano
Tecno214
04-04-2007, 11.35.59
In effetti la base della programmazione è una cosa che mi affascina oltremodo visto che permette di fare moltissime cose, sopratutto in ambito di una LAN centralizzata, che altrimenti sarebbero possibili solo con l'ausilio di software esterni di supporto...
Non amcherò senza dubbio di aprofondire l'argomento!
Grazie ancora per adesso! :act:
LoryOne
07-04-2007, 19.04.34
Io però non capisco ...
if /I not %%i==\\SERVER1 (
if /I not %%i==\\SERVER2 shutdown -m %%i -s
Va bene sintatticamente ma perchè crearsi un file list con i nomi dei due server e nel loop evitare di eseguire il comando shutdown per i due nomi host specificati ?
Semplicemente, elimina i nomi host dal file list.
Xtefano
10-04-2007, 10.39.29
Anche ...
se la lista è statica problemi non ce ne sono, se la costruisci dinamicamente con NET VIEW basta un passaggio con grep -v per eliminare i server da non processare nel loop ....
Byez
Stefano
vBulletin® v3.8.6, Copyright ©2000-2025, Jelsoft Enterprises Ltd.