BAT файл на выключение компов

Windows 95, 98, ME и 3,11; WinNT, Win2000, WinXP, Win2003, Vista, 7
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Reken
прапорщик
Сообщения: 461
Зарегистрирован: 2014-06-30 11:23:24

BAT файл на выключение компов

Непрочитанное сообщение Reken » 2015-10-01 8:57:32

Здравствуйте
Подскажите пожалуйста в решении следующей проблемы...
Есть "сетка" из компов, около 10 компов + сервак. Хочется реализовать задачу, что бы все компы в сети выключались на ночь. Сервак работает круглосуточно...
На серваке сделал BAT файл, содержание такое...

Код: Выделить всё

shutdown /s /f /m \\192.168.99.10
shutdown /s /f /m \\192.168.99.8
и т.д.

Когда допустим комп 192.168.99.10 включен, то BAT файл запущенный с сервака отрабатывает на отлично (выключает комп 192.168.99.10). Но вот если комп 192.168.99.10 уже выключен, а я запускаю BAT файл, то батник зависает, и до следующих строк (компов) не доходит, а просто висит...
Можно как то реализовать, что бы компы которые уже выключены, BAT файл пропускал их, и выключал только те которые включены?

snorlov
подполковник
Сообщения: 3559
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

BAT файл на выключение компов

Непрочитанное сообщение snorlov » 2015-10-01 10:02:14

Сделайте проверку живущий ли комп хотя бы на пинг или на присуствие административных ресурсов типа C$, ADMIN$
В приведенном коде надо исключить сервера и активные приборы

Код: Выделить всё

set /A mp=1
set MSK_IP=192.168.99.
:start_bat
if %mp%==255 goto exit_bat
set m_ip=%MSK_IP%%mp%

rem if exist \\%m_ip%\c$  goto COMP_FOUND
ping -n 1 %m_ip% | find /I "TTL" > nul
if %ERRORLEVEL%==0 goto COMP_FOUND
:COMP_NOT_FOUND
goto EXIT_SEARCH_COMP
:COMP_FOUND
shutdown /s /f /m \\%m_ip%
:EXIT_SEARCH_FREE

set /A mp=%mp%+1
goto start_bat
:exit_bat

Reken
прапорщик
Сообщения: 461
Зарегистрирован: 2014-06-30 11:23:24

BAT файл на выключение компов

Непрочитанное сообщение Reken » 2015-10-01 10:13:05

Snorlov спасибо :good:
Теперь попробую разобраться, в выше указанных строках батника...

snorlov
подполковник
Сообщения: 3559
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

BAT файл на выключение компов

Непрочитанное сообщение snorlov » 2015-10-01 10:25:51

Reken писал(а):Snorlov спасибо :good:
Теперь попробую разобраться, в выше указанных строках батника...

А что тут разбираться, идет сканирование сетки начиная с .1 до .254 с приращением 1
Виндовые компы лучше проверять по ресурсам c$, поскольку файеры на них могут быть включены и на пинг они могут не ответить, т.е. задействовать

Код: Выделить всё

rem ping -n 1 %m_ip% | find /I "TTL" > nul
rem if %ERRORLEVEL%==0 goto COMP_FOUND
if exist \\%m_ip%\c$  goto COMP_FOUND

Правда и административные ресурсы тоже могут быть отключены...

Reken
прапорщик
Сообщения: 461
Зарегистрирован: 2014-06-30 11:23:24

BAT файл на выключение компов

Непрочитанное сообщение Reken » 2015-10-01 10:46:07

snorlov писал(а):поскольку файеры на них могут быть включены

Нет, они точно выключены...
Reken писал(а):Теперь попробую разобраться

Я имел ввиду, разобраться куда именно в батнике прописать серваки, что бы они за компанию не выключились)) (то есть исключить их...)

snorlov
подполковник
Сообщения: 3559
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

BAT файл на выключение компов

Непрочитанное сообщение snorlov » 2015-10-01 10:50:10

Проще простого

Код: Выделить всё

:start_bat

rem пропуск
if %mp%==12 (set /A mp=%mp%+1 )
if %mp%==24 (set /A mp=%mp%+1 )

if %mp%==255 goto exit_bat


Reken
прапорщик
Сообщения: 461
Зарегистрирован: 2014-06-30 11:23:24

BAT файл на выключение компов

Непрочитанное сообщение Reken » 2015-10-01 15:23:57

snorlov писал(а):Проще простого

snorlov писал(а):rem пропуск

Вместо слова "пропуск" должен быть адрес компа?

snorlov
подполковник
Сообщения: 3559
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

BAT файл на выключение компов

Непрочитанное сообщение snorlov » 2015-10-01 15:48:15

пропускаем 192.168.99.12 и 192.168.99.24

Reken
прапорщик
Сообщения: 461
Зарегистрирован: 2014-06-30 11:23:24

BAT файл на выключение компов

Непрочитанное сообщение Reken » 2015-10-01 15:55:52

snorlov писал(а):пропускаем 192.168.99.12 и 192.168.99.24

Получается, готовый BAT должен выглядеть так:? (если пропускаем 192.168.99.12 и 192.168.99.24)

Код: Выделить всё

set /A mp=1
set MSK_IP=192.168.99.
:start_bat
rem
if %mp%==12 (set /A mp=%mp%+1 )
if %mp%==24 (set /A mp=%mp%+1 )

set m_ip=%MSK_IP%%mp%

rem if exist \\%m_ip%\c$  goto COMP_FOUND
ping -n 1 %m_ip% | find /I "TTL" > nul
if %ERRORLEVEL%==0 goto COMP_FOUND
:COMP_NOT_FOUND
goto EXIT_SEARCH_COMP
:COMP_FOUND
shutdown /s /f /m \\%m_ip%
:EXIT_SEARCH_FREE

set /A mp=%mp%+1
goto start_bat
:exit_bat

snorlov
подполковник
Сообщения: 3559
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

BAT файл на выключение компов

Непрочитанное сообщение snorlov » 2015-10-01 16:09:23

Именно, а строчку

Код: Выделить всё

rem if exist \\%m_ip%\c$  goto COMP_FOUND

можно убрать, если используете только ping

Код: Выделить всё

ping -n 1 %m_ip% | find /I "TTL" > nul
if %ERRORLEVEL%==0 goto COMP_FOUND

а можно вообще все вместе

Код: Выделить всё

if exist \\%m_ip%\c$  goto COMP_FOUND
ping -n 1 %m_ip% | find /I "TTL" > nul
if %ERRORLEVEL%==0 goto COMP_FOUND

Reken
прапорщик
Сообщения: 461
Зарегистрирован: 2014-06-30 11:23:24

BAT файл на выключение компов

Непрочитанное сообщение Reken » 2015-10-01 16:27:35

Спасибо Snorlov


Вернуться в «Windows»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя