Массовая перезагрузка компьютеров в локальной сети
Как перезагрузить сервер через PowerShell
Microsoft уже давно несет свой сильный язык в массы, и надо вам сказать он очень функционален, но об этом позже. PowerShell, так же имеет возможность перезагрузить ваш сервер или компьютер через свою командную строку, делается это очень просто. Открываем оболочку PowerShell и вводим вот такой командлет
Или для нескольких
Довольно таки просто, есть возможно перезагружать список серверов. Уверен теперь у вас не будет проблем перезагрузить компьютер через командную строку. Существует конечно большое множество подобного рода утилит, но их нужно доставлять. Описанные два средства уже являются компонентами Windows и не требуют установки, что подразумевает моментальное их использование, да и чем меньше на сервере установлено тем лучше, более безопасно, так как любое стороннее по нужно обновлять и следить за этим.
Как быть, если к вам в офис пришли какие-то враги (например, лиц-шмональщики), и застали вас в процессе работы за компьютером, на котором уже введены все секретные пароли, запущены нелицензионные программы, открыты секретные документы?
Самый простой и надёжный способ - перезагрузить сразу все компьютеры, сделав вид будто это какой-то случайный ужасный сбой, а вовсе не принятие мер безопасности. Эта небольшая статья - о том, как вызвать такой "сбой".
СПОСОБ ПЕРВЫЙ - ЭЛЕКТРИЧЕСКИЙ.
Самый простой, надёжный и жестокий способ - электрический. Просто замкните электропроводку - вылетят пробки, офис будет надёжно обесточен. Чтобы вызвать надёжное короткое замыкание лучше подготовиться заранее, проявив фантазию в создании короткозамкнутых приборов. Это может быть что угодно: "неисправный" электрочайник, "проблемная" электролампочка, "сломаный" удлинитель, и так далее. Это может быть просто "включатель света" на стене, или какая-нибудь "недоделанная проводка", которую можно "нечаянно" задеть ногой. В общем, здесь полный простор для фантазии. Главное - не забывать про источники бесперебойного питания.
Глупо обесточивать офис, если у каждого компьютера стоит 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
Как быть, если к вам в офис пришли какие-то враги (например, лиц-шмональщики), и застали вас в процессе работы за компьютером, на котором уже введены все секретные пароли, запущены нелицензионные программы, открыты секретные документы?
Самый простой и надёжный способ - перезагрузить сразу все компьютеры, сделав вид будто это какой-то случайный ужасный сбой, а вовсе не принятие мер безопасности. Эта небольшая статья - о том, как вызвать такой "сбой".
СПОСОБ ПЕРВЫЙ - ЭЛЕКТРИЧЕСКИЙ.
Самый простой, надёжный и жестокий способ - электрический. Просто замкните электропроводку - вылетят пробки, офис будет надёжно обесточен. Чтобы вызвать надёжное короткое замыкание лучше подготовиться заранее, проявив фантазию в создании короткозамкнутых приборов. Это может быть что угодно: "неисправный" электрочайник, "проблемная" электролампочка, "сломаный" удлинитель, и так далее. Это может быть просто "включатель света" на стене, или какая-нибудь "недоделанная проводка", которую можно "нечаянно" задеть ногой. В общем, здесь полный простор для фантазии. Главное - не забывать про источники бесперебойного питания.
Глупо обесточивать офис, если у каждого компьютера стоит 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
Синтаксис утилиты shutdown
Ниже представлена подробная справка по всем возможным параметрам данной утилиты, думаю вы сможете найти бного полезного для различных задач.
Z:\>shutdown
Использование: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
[/m \\компьютер][/t xxx][/d [p|u]xx:yy [/c "комментарий"]]
Для удобства можно создать ярлык в котором можно вставить данную команду, или же создать cmd или bat файл для удобства. Так же я данную возможность использовал в mmc консоли. Помимо того что можно перезагрузить через командную строку, есть возможность сделать тоже самое и через PowerShell.
Скрипт PowerShell для перезагрузки по расписанию
Предположим, что вам нужно перезагрузить компьютер по расписанию, это можно сделать и групповыми политиками, а так же и через задачу по расписанию, актуально для компьютеров не в домене. Вы в задаче подкладывает ваш скрипт PowerShell, чтобы выполнять его в нужное время, но с уведомлением человека. Ниже текст скрипта.
$wshell.Popup("Данный компьютер будет перезагружен",10,"Сохраните свои данные",0x0)
$wshell.Popup("Перезагрузка будет через 30 секунд",2,"Не забудьте сохранить данные",0x0)
Restart-Computer -ComputerName w10-cl01
Еще бонусом перезагрузка локального компьютера может быть выполнена и с помощью WMI. Для этого в оболочке PowerShell введите;
Всем привет мне уже несколько раз писали такой вопрос, как перезагрузить сервер Windows через командную строку. Сегодня я на него отвечу, рассказав о нескольких способах это сделать. Для чего это может быть использовано ну например для написания скрипта, который в нужное время перезагрузит сервер, либо для саморазвития, мотивы могут быть разными, давайте смотреть как это сделать.
Что такое конфликт ip адресов?
И так представим у вас в организации, работают два человека с полностью идентичными ФИО. Вы задаете вопрос на собрании, кто тут Иванов Иван Иванович, и тут у вас поднимается два человека. Вот в локальной сети, так же появляются два компьютера с одинаковыми адресами, это и называется ситуация, при которой обнаружен конфликт ip адресов. Это хорошо будет, если это два клиентских компьютера, проблема будет минимальна, а что будет, если одним из участников будет сервер, который выполняет важную функцию в организации, например, сервер 1С, поверьте за это вас по головке не погладят.
Причины появления конфликта ip адресов Windows
Выше я вам показал, что из себя представляет ситуация, с одинаковыми ip адресами в операционной системе Windows. Давайте я вам расскажу, о причинах ее появления:
- Первая причина, это когда у вас в локальной сети, все сетевые адреса на компьютерах, назначаются в ручную (статические ip адреса). Обычно такие настройки делают для серверов, чтобы у них сохранялись всегда одни и те же параметры, но в данном методе есть уязвимое место, это необходимость вести реестр этих адресов, в разном виде и всегда его актуализировать. В противном случае вы можете получать проблемы с одинаковыми адресами. Я такое часто видел в маленьких офисах, где есть так называемый админчик, который так делает, и вот приходит новый компьютер или ноутбук, и для него так же вбивают ip, в итоге в локальной сети обнаружен конфликт ip адресов, как говориться за ошибки нужно платить.
- Второй вариант, это когда у вас есть проблемы с DHCP сервером, на котором у вас либо не настроена функция отслеживания дублирования адресов, либо у вас DHCP сервер кому-то назначил ip, а кто-то другой взял и настроил себе статический, вот и произошла ошибка конфликта ip адреса. Из своей практики я видел такое шапито, когда у одного админа был Kerio Control, на котором была функция DHCP сервера, там адреса назначались с большим резервированием и порой с привязкой. В один из прекрасных, московских дней, случилась ситуация, что у части людей перестал работать интернет. В настройках сети, светился APIPA адрес, этот админ вместо того, чтобы зайти в DHCP сервер и увидеть, что у него кончились адреса в пуле, стал массово перезагружать компьютеры и назначать на них статические айпишники, в итоге тем самым, он создал огромное количество ip конфликтов в сети, он просто не понимал принцип работы службы.
обнаружен конфликт ip адресов Windows. В этой сети уже есть компьютер с таким же IP-адресом. Обратитесь к системному администратору для решения проблемы
Если вы зайдете в настройки сетевого интерфейса, то обнаружите, что в данной ситуации у вас основным адресом, будет IP из APIPA диапазона (169.254.x.x). Это означает, что конфликтный адрес у вас будет не доступен, и вы в локальной сети не сможете общаться практически ни с кем.
Так же если посмотреть логи операционной системы Windows, то вы там обнаружите вот такое уведомление, код события 4199:
В системе обнаружен конфликт IP-адреса 192.168.31.1 с системой, имеющей адрес сетевого устройства 00-0C-29-19-92-76. В результате могут быть нарушены сетевые операции на этих системах.
Из-за чего у вас может быть обнаружен конфликт ip адресов Windows, я вам рассказал, переходим теперь к алгоритму решения данной ситуации.
Давайте с вами рассмотрим какие есть варианты того, чтобы избежать ситуации с пересечением или дублированием адресов на ваших компьютерах в локальной сети.
- Во первых если у вас обычный маленький офис и по каким-то причинам, все локальные адреса назначаются, исключительно в ручном режиме, то обязательно ведите реестр выданных адресов, и к этому вопросу вам необходимо подойти ответственно. В серверном сегменте статика приветствуется, еще как один из гандикапов проверки используйте DNS сервер, в зоне которого регистрируются ваши компьютеры и сервера. Для ведения таблиц, кстати есть удобный программный продукт racktables, он абсолютно бесплатный.
Чтобы в таком случае убрать конфликт ip адресов Windows, попробуйте выполнить:
- Если вы получаете ip-адрес, через какое либо устройство, будь то роутер или маршрутизатор, то попробуйте на него зайти и посмотреть в чем дело, в любом таком устройстве есть меню, где идет выдача адресов (Например, DHCP Clients List). Попробуйте увеличить диапазон раздаваемых адресов, в примере это от 100 до 199, поставьте от 20 до 250. В крайнем случае перезагрузите его.Во
- Если перезагрузка не помогла, то открываем окно выполнить (Сочетание клавиш Win и R) и вводим команду ncpa.cpl. У вас откроется "Панель управления\Все элементы панели управления\Центр управления сетями и общим доступом". Перейдите в левом, верхнем углу в пункт "Изменение параметров адаптера", щелкните правым кликом по вашему сетевому интерфейсу и попробуйте его выключить и включить.
- Если отключение интерфейса не помогло, то зайдите в свойства вашего сетевого адаптера, в интерфейс ipv4. И так, если у вас конфликт ip адреса в сети, происходит из-за того, что у вас на сбойном компьютере установлен не правильный ip адрес, то измените его на нужный, или поставьте получение IP-адреса автоматически. Если у вас уже стоит получение IP-адреса автоматически, то наоборот настройте статический адрес отличный от конфликтного. Все сетевые настройки, в лучшем случае нужно узнать у сетевого админа, но если их нет, то чаще всего в качестве DNS-серверов выступает ip-адрес основного шлюза, он же ваш роутер (коробочка, что дает интернет и WIFI), прописываем его, а вот, маска в 99% случаев 255.255.255.0, а вот основной адрес придется по подбирать, чтобы проверить не занят ли он кем то, без DHCP сервера, выполните до него команду Ping, она все вам ответит.
Еще можно сбросить текущий ip адрес, при условии его автоматического получения, через окно командной стройки, где нужно выполнить ipconfig /release и затем ipconfig /renew. У вас будет обнулен текущий адрес и запрошен новый.
- Если у вас нормальная организация и количество компьютеров исчисляется десятками или более, то вам просто необходим DHCP сервер, который автоматически будет раздавать ip адреса и следить за их использованием. Вы всегда сможете понять кому и какой адрес у вас назначен. Например, у Cisco оборудования, зашито поведение при конфликте ip адресов.
Если мы говорим, о Windows DHCP, то там есть функция защиты от конфликта IP адресов. Открываем оснастку DHCP и выделяем пул IPv4. Щелкаем по нему правым кликом мыши и выбираем из контекстного меню, пункт "Свойства".
Переходим на вкладку "Дополнительно" и находим пункт "Число попыток определения конфликтов (Conflict detection attempts)", по умолчанию там выставлено значение 0, означающее что служба не будет вначале проверять ip адрес на предмет доступности перед его выдачей. Выставляем значение от 1 до 5. Данная функция позволит исключить конфликт ip адреса с другой системой.
Те же настройки "Число попыток определения конфликтов" можно изменить и через powershell, открыв его от имени администратора и введя командлеты:
Как видите, у меня нужный параметр уже имеет значение 5, а не ноль.
Чтобы изменить значение "Число попыток определения конфликтов (Conflict detection attempts)", введите вот такую команду.
Как видите я задал новое значение 4, проверяем что все изменилось. Как видите PowerShell рулит.
Перезагрузка компьютера, это базовая процедура в операционной системе, и для большинства людей достаточно графического варианта, но бывают ситуации, что у вас может быть с помощью групповой политики убрана кнопка перезагрузки, или же вам нужно перезагрузить сразу пачку серверов, в таких ситуациях вас выручит PowerShell.
Открываем окно PowerShell в режиме администратора и знакомимся с командлетом Restart-Computer.Первое, что я вам советую сделать, это ознакомиться со справкой командлета, для этого введите:
Для того, чтобы была выполнена локальная перезагрузка компьютера, вам достаточно ввести данный командлет:
Как видим компьютер уходит в перезагрузку.
Так же можно использовать команду с добавлением ключа -ComputerName
Тут так же будет выполнена перезагрузка компьютера, хочу отметить, что localhost означает локальный компьютер, но вам никто не мешает тут ввести и имя локального компьютера.
Перезагрузка компьютера с задержкой по времени
Еще очень частая ситуация, это перезапуск компьютера, но через определенное время, предположим, через 60 секунд, чтобы какие-то другие вещи успели отработать, очень часто применяется в сценариях и скриптах. Для выполнения это задачи есть командлет Start-Sleep. Пишем команду:
В ключе -Seconds вы задаете время в секундах.
так же у вас есть возможность определить механизм, который используется для аутентификации учетных данных пользователя. Этот параметр был введен в Windows PowerShell 3.0. Называется этот ключ -WsmanAuthentication. На выбор у вас будет пять вариантов: Basic, CredSSP, Default, Digest, Kerberos и Negotiate.
Аутентификация поставщика услуг безопасности учетных данных (CredSSP), при которой учетные данные пользователя передаются на удаленный компьютер для проверки подлинности, предназначена для команд, требующих проверки подлинности на нескольких ресурсах, например для доступа к удаленному сетевому ресурсу. Этот механизм увеличивает риск безопасности при удаленной операции. Если удаленный компьютер скомпрометирован, переданные ему учетные данные можно использовать для управления сетевым сеансом.
В моем примере я буду использовать проверку подлинности Kerberos, напоминаю, что для этого у вас на удаленных компьютерах должна быть настроена служба WinRM и политика, определяющая с каких ip-адресов вы можете производить подключение к ней. В итоге команда принимает такой вид:
После ее выполнения удаленные компьютеры уходят в перезагрузку.
Перезагрузить через командную строку
Перезагружать через командную строку мы будем Windows Server 2008 R2, но данная инструкция подойдет как и для 2012 R2 так и для любой клиентской ОС хоть от Windows 7 до Windows 10. В начале мы рассмотрим классическую cmd, открываем ее (Как открыть командную строку читайте тут). Для перезагрузки используется вот такая команда.
-r - означает перезагрузка
-t - время равное 0
У вас начнется моментально перезагрузка Windows.
Удаленная перезагрузка компьютера
Как я и говорил ранее PowerShell, это прекрасный инструмент по удаленному управлению компьютерами, серверами и службами. Предположим, что у меня есть RDS ферма состоящая из 10 серверов с Windows Server 2019. Мне необходимо произвести обслуживание четырех серверов, для этого я перевожу их в режим стока (Drain Mode) чтобы отсечь новые подключения, и рассылаю уведомление сотрудникам, через msg, чтобы сотрудники перелогинились. После я начинаю обслуживать данные системы, когда я заканчиваю, то мне необходимо их перезагрузить. Для этого мы воспользуемся вот такой конструкцией:
Restart-Computer -ComputerName w10-cl02, w10-cl03 (w10-cl02, w10-cl03 имена удаленных компьютеров или серверов)
После выполнения команды компьютер уходит в перезагрузку, если этого не произошло, то вы с большой вероятностью получите ошибку:
Как видим команда успешно отработала и была произведена перезагрузка компьютера.
Если вы хотите перезагрузить удаленный компьютер от имени определенного пользователя, то данный командлет вам это позволит сделать. Для этого введите:
Restart-Computer -ComputerName w10-cl02, w10-cl03 -Credential root\sem (Где root, это наименование домена, а sem, это логин пользователя)
В результате у вас появится окно для ввода пароля пользователя, указываем его и нажимаем "Ok". Кстати если на удаленном компьютере, который требуется перезагрузить, будет активная сессия пользователя в интерактивном режиме, то вам так же выскочит ошибка, что "компьютер используется другими пользователями" и вам нужно будет добавлять ключик -Force:
В логах Windows на тех компьютерах, в журнале система, вы сможете обнаружить событие с кодом ID 1074(/kak-uznat-kto-perezagruzil-server-windows/), в котором вы увидите, кто перезагрузил систему:
Процесс C:\Windows\system32\wbem\wmiprvse.exe (W10-CL02) инициировал действие "Перезапустить" для компьютера W10-CL02 от имени пользователя ROOT\sem по причине: Причина на перечислена
Код причины: 0x80070015 Тип выключения: Перезапустить
Предположим, что у вас есть список компьютеров, которые требуется удаленно перезагрузить. В такой ситуации сам Бог велел использовать PowerShell. Структура файла выглядит очень просто, обычный текстовый документ, формата txt. На каждой строке по одному имени компьютера, без запятых. Я положил его в корень диска C:\.
Для того, чтобы прочитать данный файл есть командлет Get-Content и конструкция команды принимает вот такой вид:
В итоге удаленная перезагрузка компьютера через PowerShell успешно отработала и все системы из файла обслужены.
Читайте также: