Как перезагрузить компьютеры по сети (в случае проверки)
Создана: 07 Июня 2008 Суб 12:50:19.
Раздел: "Компьютерный раздел"
Сообщений в теме: 17, просмотров: 70760
-
Как быть, если к вам в офис пришли какие-то враги (например, лиц-шмональщики), и застали вас в процессе работы за компьютером, на котором уже введены все секретные пароли, запущены нелицензионные программы, открыты секретные документы?
Самый простой и надёжный способ - перезагрузить сразу все компьютеры, сделав вид будто это какой-то случайный ужасный сбой, а вовсе не принятие мер безопасности. Эта небольшая статья - о том, как вызвать такой "сбой".
СПОСОБ ПЕРВЫЙ - ЭЛЕКТРИЧЕСКИЙ.
Самый простой, надёжный и жестокий способ - электрический. Просто замкните электропроводку - вылетят пробки, офис будет надёжно обесточен. Чтобы вызвать надёжное короткое замыкание лучше подготовиться заранее, проявив фантазию в создании короткозамкнутых приборов. Это может быть что угодно: "неисправный" электрочайник, "проблемная" электролампочка, "сломаный" удлинитель, и так далее. Это может быть просто "включатель света" на стене, или какая-нибудь "недоделанная проводка", которую можно "нечаянно" задеть ногой... В общем, здесь полный простор для фантазии. Главное - не забывать про источники бесперебойного питания.
Глупо обесточивать офис, если у каждого компьютера стоит UPS. Если вы заботитесь о безопасности, то не поленитесь заранее протянуть в своём офисе отдельную проводку специально для питания компьютеров, завести её всю на один хороший мощный UPS. Во-первых, такая схема - надёжнее, правильнее, легче в обслуживании, по сравнению с той схемой, когда у каждого компа стоит персональный UPS.
Во-вторых, вы получаете прекрасную возможность отрубать питание у всех компьютеров сразу. Либо закоротив проводку (хороший UPS при этом уйдёт в защиту), либо просто отключив линию питания.
ВТОРОЙ СПОСОБ - ПЕРЕЗАГРУЗКА ПО СЕТИ.
Гораздо менее жестоким способом перезагрузки компьютеров является подача через локальную сеть команды о перезагрузке. На практике это реализуется следующим образом:
на всех компьютерах устанавливается специальный ярлычок, при нажатии на который происходит перезагрузка всех компьютеров в офисе. Как только выясняется, что "волк в домике!" кто-то из сотрудников (кто угодно, или несколько сразу) вызывают этот магический ярлычок кликнув иконку на своём компе, либо нажав определённое сочетание клавиш. После этого все компы сами по себе начинают перезагружаться, все пароли исчезают, все документы закрываются. Можно при этом даже театрально всплеснуть руками "ОЙ блин у меня компьютер ОПЯТЬ САМ ПЕРЕЗАГРУЗИЛСЯ!!! Да сколько ж можно!"
Команда удалённой перезагрузки очень простая:
shutdown -r -f -t 0 -m \\имя-или-айпи-адрес-компа.
например, чтобы перезагрузить server1 надо выполнить
shutdown -r -f -t 0 -m \\server1
параметры:
-r означает что компьютер будет перезагружен (если поставить -s то будет выключен)
-f означает принудительное завершение открытых программ.
-t 0 означает время ожидания перед перезагрузкой в секундах, ноль - то есть нисколько не ждать.
-m имя - указание удалённого компьютера в сети, на который посылается команда. Если не указан этот ключ то команда адресуется к локальному компьютеру
Просмотреть хелп команды можно набрав shutdown /?
Теперь ВАЖНЫЙ момент: у текущего пользователя может не хватить прав доступа на выключение соседнего компьютера или сервера. Это лечится вот какой командой:
runas /env /user:Admin1 /savecred "shutdown -r -f -t 0 -m \\COMP"
Команда runas предназначена для запуска процессов от имени другого пользователя.
Вместо COMP надо подставить имя компьютера, вместо Admin1 - имя юзера, имеющего права администратора на компьютере COMP и как минимум права юзера на компьютере, с которого осуществляется вызов команды. Разумеется, и на том и на другом компьютере пароль для этого имени должен быть одинаковым.
-Самый простой вариант - использовать одно имя администратора и один пароль для всех компьютеров, тогда запутаться становится совершенно невозможно.
-Самый сложный вариант - если не хочется раздавать направо-налево права администратора, тогда можно создать на каждом компьютере специального юзера, дать ему ограниченные права, достаточные только для перезагрузки компьютеров - но это задачка скорее для сисадмина, нежели для рядового пользователя.
-Если компьютеры включены в домен, то проще всего во всех командах использовать учётку доменного администратора, либо использовать специального доменного юзера с правами на перезагрузку любого компьютера.
-Поясняю параметр /savecred , он предназначен для того, чтобы не требовалось вводить пароль каждый раз. Достаточно ввести пароль один раз, после этого система его запоминает, а в следующий раз команда выпонится уже без запроса пароля, на основе запомненных данных.
Вцелом скрипт массовой перезагрузки может выглядеть примерно так:
runas /env /user:Admin1 /savecred "shutdown -r -f -t 0 -m \\COMP1"
runas /env /user:Admin2 /savecred "shutdown -r -f -t 0 -m \\COMP2"
runas /env /user:Admin3 /savecred "shutdown -r -f -t 0 -m \\COMP3"
...
и так далее, по количествку компов.
Однако, при таком способе команды будут вызываться последовательно, то есть команда на перезагрузку последнего компьютера будет подана гораздо позже чем команда на перезагрузку первого компьютера в списке. Это тоже можно вылечить. Достаточно дописать в начале каждой команды магическое слово start и тогда все команды запустятся параллельно. То есть итоговый скрипт тотальной перезагрузки всех компьютеров будет выглядеть примерно так:
start runas /env /user:Admin /savecred "shutdown -r -f -t 0 -m \\COMP1"
start runas /env /user:Admin /savecred "shutdown -r -f -t 0 -m \\COMP2"
start runas /env /user:Admin /savecred "shutdown -r -f -t 0 -m \\COMP3"
Удачных экспериментов, дамы и господа!
p.s. иногда встречаются такие версии винды, которые упорно не желают воспринимать команду перезагрузки по сети. Чтобы это вылечить надо, во-первых, проверить настройку безопасности, которая отвечает за правила сетевой авторизации пользователей. В XP найти это можно так: открываем Control Panel -> Administrative tools -> Local Security Policy
Там ищем такую настройку:
Local Policies -> Security Options ->
Network access: Sharing and security model for local accounts
там надо включить режим "Classic" вместо "Guest only".
(по русски - Паналь управления -> Администрирование
Локальные параметры безопасности
Локальные политики -> Параметры безопасности ->
Сетевой доступ: модель совместного доступа... - здесь по умолчанию включено "Гостевая", надо включить "Обычная".
(если компьютеры в домене то делать это скорее всего не потребуется).
Разумеется, все компьютеры, которые мы хотим перезагружать через сеть, должны быть не зафаерволены от доступа из локальной сети!
Решив проблему доступа через локальную сеть все остальные препятствия можно преодолеть через использование утилиты psexec. Команда на удалённую перезагрузку в этом случае будет выглядеть так:
psexec \\IP -u Administrator -p password shutdown -r -f -t 0
Вместо IP подставляем IP-адрес компьютера, который отправляем в перезагрузку. Вместо Administrator и password - подставляем соответственно логин и пароль администратора того компьютера.
p.p.s. Волшебную утилиту psexec можно скачать прямо с майкрософта:
[внешняя ссылка]
p.p.p.s. Ещё можно по аналогии создать менее злую командочку, которая вместо перезагрузки просто автоматически лочит все компы. Тоже очень полезно в случае проверки - залоченость компов даёт некоторое время на принятие дальнейших решений. Если "волки" не знают паролей то для входа им понадобится либо выпытывать пароли у юзеров, либо требовать разлочить систему. А это всё драгоценное время, за которое можно принять какие-то меры.
Чтобы залочить комп по сети, достаточно выполнить следующую командочку (опять же с помошью утилиты psexec):
psexec \\IP -u Administrator -p password rundll32.exe user32.dll,LockWorkStation
Можете поиграться с залочиванием компьютера своего соседа
Если компьютеры находятся в домене, а вы имеете права администратора домена, попробуйте выполнить:
FOR %I IN (список) DO start psexec \\сетка.%I rundll32.exe user32.dll,LockWorkStation
где "сетка" - это начальные цифры IP-адреса вашей локальной сети, например, 192.168.0
ну а "список" - это последние цифры IP-адресов, через запятую.
Например, чтобы залочить компютеры с IP-адресами 192.168.0.5, 192.168.0.20 и 192.168.0.55 надо написать так:
FOR %I IN (5,20,55) DO start psexec \\192.168.0.%I rundll32.exe user32.dll,LockWorkStation -
-
Кстати, есть неплохой способ рассылать текстовые оповещения на экраны соседних компьютеров, используя сочетание psexec и msg.
FOR %I IN (список) DO start psexec \\сетка.%I msg * "Текстовое сообщение"
например,
FOR %I IN (5,11) DO start psexec \\192.168.0.%I msg * "Можете входить в 1С (Администратор)"
будет послано сообщение на компьютеры 192.168.0.5 и 192.168.0.11
-можно задать параметр /TIME:секунды - это время, в течение которого сообщение показывается, потом оно исчезает. Если пользователь нажимает "ОК" то сообщение закрывается сразу. Есть смысл задавать параметр TIME, чтобы сообщение не висело дольше своего устаревания. К тому же, пока не закрыто предыдущее сообщение, следующие сообщения не выводятся, и если на том конце сидит "тупой юзер", который игнорирует сообщение, то он не получит следующее сообщение, пока не нажмёт ОК на предыдущем.
-даже если компьютер залочен, сообщение всё равно выскочит на экран. Если на экране крутится скринсейвер - поверх него выскочит!
-запуская msg * (со звездочкой) мы отправляем сообщение "во все сессии". Например, если в качестве IP-адреса указан адрес терминального сервера, на котором сидит параллельно несколько человек, то сообщение получит каждый.
-если компьютеры не в домене, придётся явным образом указывать логин-пароль административной учетки того компа, на который отправляется сообщение, то есть
psexec \\ip -u Administrator -p password msg * /TIME:600 Сообщение
p.s. Раньше для отправки сообщений на соседние компьютеры можно было использовать net send ( работает на базе службы messenger ), но сейчас эта служба по умолчанию выключена, видимо из-за спама.
А для выполнения msg служба messenger не требуется. -
Я вполне успешно использую psshutdn.exe от sysinternals (вероятно, это то же самое, судя по взаимоотношениям с MS). Только "натравливается" на сервероы/компьютеры, подключенные к единому ИБП по сигналу с "APC PC chuite" во время падения силовой сети. -
AlexAdmin писал :
p.s. Раньше для отправки сообщений на соседние компьютеры можно было использовать net send ( работает на базе службы messenger ), но сейчас эта служба по умолчанию выключена, видимо из-за спама.
А для выполнения msg служба messenger не требуется.
Я её врубил в групповых политиках. МСГ всё-таки для терминальных служб больше предназначена, не очень удобно комбинировать её с псекзеком, а вот net send blabla /domain это самое то в таких случаях... -
AlexAdmin писал :psexec \\IP -u Administrator -p password shutdown -r -f -t 0
Этот вариант получился! Все что было описано выше до этой команды никак не работало...
Есть небольшой минус - длительноть коннекта с удаленным компьютером, где-то секунд 30-40 потребовалось, чтобы перезагрузить ноут со стационарного компьютера.
Компьютер перезагрузился, но вот сообщение меня это смутило:
shutdown exited on 192.168.1.11 with error code 0.
Что это значит, что за ошибка такая? Или это нет ошибок? -
TanSi писала :shutdown exited on 192.168.1.11 with error code 0.
Что это значит, что за ошибка такая? Или это нет ошибок?
Нет ошибок.
"error code 0" пишет когда всё окей.
Ещё несколько замечаний.
-Для исполнения psexec требуется чтобы на удалённом компьютере был разрешен "общий доступ к файлам и принтерам", потому что при этом используется ресурс admin$
-Ускорить исполнение скрипта и сделать его более надёжным можно если задать параметры -e (не загружать профиль) и -s (запуск от имени аккаунта SYSTEM), а также можно повысить приоритет процесса задав ключ -high
-Можно указать ключ -d и в этом случае psexec не будет дожидаться завершения процесса на удалённом компьютере, а будет только сообщать ID запущенного процесса.
-При помощи psexec можно удалённо исполнять не только отдельные команды, но и целые скрипты (а также программы). Делается это при помощи ключа -c. При этом psexec сначала загружает скрипт на удалённый компьютер, исполняет его там, а потом удаляет.
-Если компьютеры в домене, то можно вызвать массовое исполнение путём указания \\*. В этом случае psexec последовательно исполняется для всех компьютеров, которые активны в домене.
Например:
psexec -e -s -d \\* msg * /TIME:10 "Проверочное сообщение" -
2 AlexAdmin
Спасибо! Я ваши посты в единий мини help-файл по сетевой перезагрузке оформила :) Жаль только испробовать всё на практике не на чем - на роботе там всякие компьютерщики и сисадмин ограничивают права юзеров, так что мучаю в качестве эксперемента свою квартирную сеть... вдруг где сгодятся данные знания -
-
-
SH писал :Человек из прокуратуры сказал, что невыдача паролей есть противодействие следованию, с вытекающими.
Люди из прокуратуры ещё мно-о-ого всяких разводок знают))))
Ну а если меня какие-нибудь "люди из прокуратуры" будут спрашивать какие-то пароли, то я не откажусь их выдавать. Зачем же мне противодействовать следствию. Я законопослушен и буду помогать следствию всеми своими силами. Но, что тут поделаешь, если я пароли забыл? Напрочь все вылетели из головы!!! Когда нервничаю, вообще всё забываю. У меня с детства проблемы с памятью. А когда мне грозят "всеми вытекающими" - я особенно нервничаю, забываю вообще всё. Вы уж извините, но посмотрите как у меня трясутся руки, как у меня заплетается язык, я же весь на нервах, у меня вместо паролей в голове сейчас такой туман, такой туман!!! Перед глазами пелена. Может быть когда-нибудь вспомню - тогда ОБЯЗАТЕЛЬНО ПОЗВОНЮ, СООБЩУ!!!! -
Да, вэто не только Вы так, когда нервничаете, то забываете пароли, "человеки из прокуратуры" тоже нервничают и забывают пригласить понятых, когда проверку устраивают, а еще забывают перед изъятием компьютеров составить список файлов, находящихся на компьютере в момент проверки... а если этого списка нет, то кто знает что с их забывчивостью потом пожет появиться или пропасть с компьютера, когда он будет находиться у них. Забывчивость - это проблема
-
-