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

Windows 95, 98, ME и 3,11; WinNT, Win2000, WinXP, Win2003, Vista, 7
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Reken
прапорщик
Сообщения: 481
Зарегистрирован: 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 файл пропускал их, и выключал только те которые включены?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

snorlov
подполковник
Сообщения: 3620
Зарегистрирован: 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
прапорщик
Сообщения: 481
Зарегистрирован: 2014-06-30 11:23:24

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

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

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

snorlov
подполковник
Сообщения: 3620
Зарегистрирован: 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
прапорщик
Сообщения: 481
Зарегистрирован: 2014-06-30 11:23:24

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

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

snorlov писал(а):поскольку файеры на них могут быть включены
Нет, они точно выключены...
Reken писал(а):Теперь попробую разобраться
Я имел ввиду, разобраться куда именно в батнике прописать серваки, что бы они за компанию не выключились)) (то есть исключить их...)

snorlov
подполковник
Сообщения: 3620
Зарегистрирован: 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
прапорщик
Сообщения: 481
Зарегистрирован: 2014-06-30 11:23:24

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

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

snorlov писал(а):Проще простого
snorlov писал(а):rem пропуск
Вместо слова "пропуск" должен быть адрес компа?

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

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

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

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

Reken
прапорщик
Сообщения: 481
Зарегистрирован: 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
подполковник
Сообщения: 3620
Зарегистрирован: 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