Как выключить все компьютеры в домене

Обновлено: 04.07.2024

Для чего выводить компьютеры из домена?

И так если вы задались этим вопросом, то у вас как минимум есть домен Actvie Directory и вы хотели бы в нем навести порядок (Если не знаете, что такое Active Directory, то читайте об этом по ссылке слева). Наверняка многие пользователи могут спросить, зачем вообще проводить эту процедуру, на это есть ряд причин:

  1. Обычно операцию вывода из домена (Unjoin Windows) производят в ситуациях, когда компьютер может вылетать из домена, пример он не был активен более одного месяца, был банальный ремонт, а потом его решили ввести в эксплуатацию, в таких ситуациях люди ловят ошибку "отсутствуют серверы, которые могли бы обработать запрос".
  2. Просто для правильного соблюдения рекомендаций Microsoft, чтобы у вас не оставались лишние, ненужные объекты в AD, в противном случае, вам придется производить самостоятельный поиск неактивных компьютеров в Active Directory и вычищать все вручную.
  3. Третья причина, это переустановка сервера, например, обновление редакции, и если до этого вы правильно не вывели компьютер из домена, то при попытке ввести в домен Windows Server вы получите ошибку, что такой компьютер уже есть.

Методы исключения компьютера из домена

  1. Первый метод, это классический, через оснастку свойства системы
  2. Второй метод, это применимый для Windows 10 и Windows Server 2016
  3. Второй метод вывода компьютера из домена, это использование PowerShell
  4. Третий метод, это через утилиту netdom, но это для Windows Server платформ, хотя вам никто не мешает ее закачать отдельно, она идет в составе Windows Server 2003 Resource Kit Tools, про него я вам рассказывал в статье про утилиту Robocopy, принцип ее получения такой же.

Меры предосторожности

Перед тем как вы отсоедините нужный вам компьютер от домена Active Directory, убедитесь, что у вас на нем есть учетная запись, с административными правами и вы знаете от нее пароль, в противном случае, вам придется производить сброс пароля администратора на данной рабочей станции

Вывод компьютера из домена классическим методом

Данный метод подойдет абсолютно для любой версии Windows, начиная с Vista. Тут все просто вы открываете всем известное окно выполнить (Сочетанием клавиш WIN и R) и пишите в нем вот такую команду sysdm.cpl и нажмите OK.

открываем sysdm.cpl

У вас откроется окно "Свойства системы - Имя компьютера"

Свойства системы Windows 10

Так же в него можно попасть и другим методом, через свойства значка "Этот компьютер". Щелкните по нему правым кликом и выберите свойства. В открывшемся окне "Система" выберите пункт "Изменить параметры"

Свойства системы Windows 10 через проводник

В окне "Имя компьютера" нажмите кнопку "Изменить", далее в открывшемся окошке "Изменение имени компьютера или домена" деактивируйте поля "Является членом домена" и выставите рабочей группы.

Вывод из домена Windows 10

Заполните поле имени рабочей группы и нажмите кнопку "OK", у вас появится окно:

После отсоединения от этого домена для входа на данный компьютер потребуется пароль локального администратора. Чтобы продолжить, нажмите кнопку "OK"

Изменение домена Windows 10

Вам сообщат, что вы теперь являетесь членом рабочей группы. Будет произведена перезагрузка вашей рабочей станции, в моем примере, это Windows 10.

Членство в рабочей группе

При правильном выводе компьютера из Active Directory, вы увидите, что в оснастке ADUC, данный компьютер будет отключен в контейнере, где он располагался. Об этом будет говорить стрелка вниз на его значке. Напоминаю, что это классический метод исключения из AD, подходит абсолютно для всех систем Windows.

Правильный вывод компьютера из AD

Исключение из домена Windows 10 и Windows Server 2016

Данный метод, будет подходить исключительно для последних версий систем Windows 10 и Windows Server 2016, на момент написания статьи. В случае с десяткой, где интерфейс кардинально меняется от версии к версии, последовательность действий будет разниться.

Метод вывода для Windows 10 версий 1503-1511

Данный метод для Windows 10 Threshold и Threshold 2. Если не знаете, какая у вас версия, то вот вам статья, как определить версию Windows. Вам необходимо открыть параметры системы, делается, это либо через кнопку "Пуск" или же сочетанием клавиш WIN и I одновременно. Находим там пункт "Система".

Параметры Windows 10 1511

В самом низу находим пункт "О Системе" и видим кнопку "Отключиться от организации", нажимаем ее.

Отключиться от организации Windows 10

В окне "Отключение от организации" просто нажмите продолжить.

Отключение от организации AD

У вас просто появится окно с предложением о перезагрузке, соглашаемся.

Перезагрузка после выхода из домена

В оснастке ADUC данный компьютер так же был отключен.

Отключенный компьютер после вывода из домена

Метод вывода для Windows 10 версий 1607 и выше

Данный метод будет рассмотрен для версии Windows 10 1803, так как я писал, что концепция изменилась, функционал перенесли в другое место. Вы все так же открываете "Параметры Windows 10", но уже переходите в пункт "Учетные записи"

Параметры Windows 10 1803

Далее находите пункт "Доступ к учетной записи места работы или учебного заведения" и нажимаете отключиться.

Отключение от домена Windows 10 1803

У вас выскочит окно с уведомлением:

Вы действительно хотите удалить эту четную запись? Ваш доступ к ресурсам, таким как электронная почта, приложения, сеть и всему связанному содержимому также будет удалены. Ваша организация может также удалить некоторые данные, хранящиеся на этом устройстве.

выход из домена Windows 10

После подтверждения, у вас появится еще одно окно, в котором вас еще раз уведомят и захотят удостовериться в ваших действиях.

После отключения вы не сможете войти в систему этого компьютера с помощью учетной записи организации. Если установлен и запущен Bitlocker, обязательно сохраните копию ключа восстановления Bitlocker где-нибудь не на этом компьютере

Нажимаем кнопку "Отключить"

Отключение от организации AD

Перезагрузка Windows 10

Открыв оснастку ADUC, я обратил внимание, что учетная запись компьютера, которого я вывел из домена, не отключилась, что очень странно, поэтому сделайте это в ручную.

ADUC Windows 10 после вывода из домена

Исключение из домена через PowerShell

Я вам не перестаю повторять, что PowerShell, просто обязан быть в вашем инструментарии системного администратора, он умеет если не все, то почти все. Открываем оснастку PowerShell от имени администратора и вводим команду:

Remove-Computer -UnjoinDomaincredential имя домена\логин учетной записи -PassThru -Verbose -Restart

У вас откроется форма с вводом пароля учетной записи,что вы указали для вывода рабочей станции из AD, указываем пароль и нажимаем "OK"

Вывод Windows 10 из домена через PowerShell-01

У вас спросят подтверждения на ваши действия, соглашаемся и вводим Y.

Вывод Windows 10 из домена через PowerShell-02

Все ваш Windows 10 с помощью PowerShell был выведен из состава домена Active Directory. В оснастке ADUC, данный компьютер был отключен, в отличии от предыдущего метода.

Вывод Windows 10 из домена через PowerShell-03

Исключение из домена через NETDOM.EXE

Напоминаю, что на клиентских Windows системах этой утилиты нет и ее нужно отдельно скачивать, она идет в составе Windows Server 2003 Resource Kit Tools. Сама команда вывода из домена выглядит вот так и запускается в cmd от имени администратора:

Подключаюсь к Домен Контроллеру и запускаю оснастку управления групповыми политиками:

Start — Control Panel — Administrative Tools — оснастка: Group Policy Management

после разворачиваем до уровня структуры Active Directory текущего домена : Group Policy Management — Forest: polygon.local — Domain — Polygon.local,

Создаю GPO с функционалом выключение компьютера

здесь создаем новую политику (Советую на каждую задачу создавать свою политику, так проще отслеживать что не работает и что работает) с именем, как обычно я именую все свои политики: через правый клик мышью на polygon.local → Create a GPO in this domain, and Link it here → GPO_Shutdown, т. к. политика у меня будет назначена на конкретные компьютеры (в последствии можно создать группу компьютеров и прилинковать ее к создаваемой политики), поэтому на вкладке Scope раздела Security Filter удаляем все, а назначаем имя вашей тестовой (пока) рабочей станции (в моем случае это W7X86) на которой будем тестировать работоспособность групповой политики, а позже уже добавим боевые компьютеры.

Теперь переходим к настройки данного шаблона групповой политики, на политике GPO_Shutdown через правый клик выбираем свойство → Edit и редактируем настройки ориентированные на компьютер (Computer Configuration)

GPO_Shutdown → Computer Configuration — Preferences — Control Panel Settings — Scheduled Tasks → далее правый клик на пустом месте справа, New → Scheduled task и приводим создаваемое задание к следующему виду:

Arguments: /s /c "ekonomim energy" /d p:0:0

Отмечаем пункт: Run As

User Name: POLYGON\ekzorchik

Confirm Password: 712mbddr@

отмечаем пункт: Enable (scheduled task runs at a specified time)

, где учетная запись ekzorchik — это учетная запись которая обладает правами «Администратора домена».

Настраиваю задачу на выключение компьютера

После переходим на вкладку: Schedule где указываем когда создаваемое задание прописанное групповой политикой на компьютерах локальной сети организации будет приведено в действие — мне нужно каждый день в 21.30

Scheduled Task: Daily

Start Time: 23:10:00 PM

Schedule Task Daily: Every 1 days

После нажимаем Apply и Ok и закрываем оснастку управления групповыми политиками.

Теперь чтобы политика применила на рабочую станцию, станцию пользователь должен перезагрузить, но вот всплывает на повестку дня еще одна задача — ждать когда же пользователь соизволит перезагрузить системы, станет ли не невмоготу работать на тормозящей или я как системный администратор помогу ему в этом единожды перед временем назначенным в этой политике.

Make sure that the default admin$ share is enabled on W7X86.

Проверяем на рабочей станции W7X86 что после перезагрузки политика успешно назначилась и в планировщике задания создалось задание столь необходимой важности:

(В представленных скриншотах у меня фигурирует время 23:19 это время когда я писал заметку и тестировал, но на работе у меня время точно соответствует времени об окончании рабочего дня для всех сотрудников: 21:30)

Пуск — Панель управления — Администрирование — Планировщик Заданий

Созданная задача в планировщике

C:\Users\alektest.POLYGON>gpresult /r

Проверяем применилась ли политика через gpresult

если же политики в выводе выше нет, то принудительно подгружаем ее:

C:\Users\alektest>gpupdate

Обновление политики пользователя завершено успешно.

Обновление политики для компьютера успешно завершено.

Перезагружаем рабочую станцию.

Если же ее и после этого нет, то значит у Вас скорее всего проблемы в домене, к примеру время на сервере и на рабочих станциях различно, к примеру не установлено обновление: Windows6.1-KB2998527-x86.msu

Как только наступило назначенное время рабочая станция успешно перезагружается.

В назначенное время компьютер выключается

Пуск — Панель управления — Администрирование — Просмотр событий — Журналы Windows — Система

Код события (Event ID): 1074

Дата: 07.10.2015 23:55:00

В логах системы формируется событие на выключение компьютера

Но не заходить же на каждую станцию и проверять, а отработало ли задание — можно конечно же и так, к примеру поручить сотрудникам сделать выборочную проверку. А вообще можно и по другому, к примеру у Вас поднят сервис централизованного логирования (к примеру LogAnalyzer) и уже в нем, произвести сортировку по данному Event ID коду. Да может это все не зачем, все существующие компьютеры в домене Вы знаете и они же также стоят у Вас в инвентаризации, как это сделано у меня через GLPI. Надеюсь я этой заметкой помог не только себе, но и многим другим в решение аналогичной задачи. На этом все, с уважением автор блога — Олло Александр.

У меня появилась задача по организации оперативного выключения удаленных серверов в один клик. Причем выключать сервера должны разнообразные пользователи, в том числе и без знаний и понимания принципов работы сервера. То есть они должны просто нажать кнопку, чтобы сервер автоматически завершил свою работу.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Причем выключать по сети нужно как windows серверы, так и linux различных дистрибутивов - ubuntu, centos, freebsd. То есть решение должно быть простое и надежное.

Дистанционное выключение Windows сервера

Начнем с самого сложного. На практике реализовать надежный способ выключения windows машин по сети для меня оказалось сложнее, чем linux. Методов и подходов к решению данной задачи много. Я пробовал разные варианты и остановился на одном, который мне показался самым надежным, он сработал без проблем во всех случаях во время тестирования.

Обязательным условием удаленного выключения сервера является сетевой доступ к нему по rdp. Вы можете находится в локальной сети с ним, подключиться по vpn или пробросить rdp соединение редиректом со шлюза. Не важно, главное попасть в систему по rdp.

Принцип работы удаленного отключения следующий:

  1. На компьютере или сервере создается пользователь, которому будет разрешено подключаться по rdp и завершать работу сервера.
  2. В автозагрузке этого пользователя будет скрипт для завершения работы.
  3. Пользователям, которые будут удаленно выключать сервер, дается специально подготовленный rdp клиент, который без всяких запросов будет подключаться нужным пользователем, у которого будет срабатывать скрипт на завершение работы.

Все достаточно просто, но на каждом этапе я сталкивался с проблемами, которые требовали не тривиального решения. Но обо все по порядку.

Итак, идем на север и создаем там простой bat файл следующего содержания:

Сохраняем файл и создаем пользователя, под которым будем выключать сервер. Не забудьте добавить этому пользователю разрешение подключаться по rdp. Если вы выключаете компьютер с десктопной системой, то прав обычного пользователя достаточно. Если же вам надо погасить Windows Server, то пользователя нужно либо сделать админа, либо дать ему права на разрешение выключение сервера через локальную политику безопасности. Живет эта политика по адресу - параметры безопасности - локальные политики - назначение прав пользователей - завершение работы системы.

дистанционное завершение работы windows

Вот тут я напоролся на первые неприятности. Я назвал свой скрипт shutdown.bat и очень долго не мог понять, почему он не срабатывает. При вводе команды shutdown с параметрами в консоли все отлично работало, но скрипт не запускался. Оказывается, его нельзя называть таким именем. После того, как переименовал в shut.bat, все отлично заработало. Какая-то нелепая загвоздка, но мне пришлось потратить немало времени, пока я разобрался, в чем тут дело.

Дальше заходим нашим новым пользователем, чтобы создались стандартные папки профиля и кладем скрипт автовыключения сервера ему в автозагрузку - C:\Users\shut-user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.

Теперь нам нужно настроить автоматический вход пользователя по rdp, чтобы выполнить удаленное завершение работы. Причем пользователь должен заходить на сервер без запроса имени и пароля. Штатными средствами rdp клиента windows это сделать невозможно. Даже если вы сохраните параметры, то при переносе настроек на другой компьютер нужно будет снова вводить пароль. Мне это не подходило.

Я пробовал использовать старую портированную версию rdp 5.2. Это последняя версия, где пароль в зашифрованном виде можно было хранить в файле настроек. Но при переносе этого файла на другой компьютер, все равно выскакивало окно с вводом пароля. Добиться полного автоматизма не получалось.

Но решение было найдено. Существует любопытный проект Remote Desktop Plus, который является надстройкой над rdp. С помощью этой надстройки можно передать параметры в rdp через командную строку, в том числе и имя пользователя с паролем. Мне это полностью подходит. Скачиваем файлик rdp.exe либо с сайта автора проекта, либо с моего. Я скопировал на всякий случай эту очень полезную утилиту. Кладем его в папку и создаем в этой же папке rem-shut.bat файл следующего содержания:

10.10.5.14 адрес удаленного сервера
shut-user пользователь rdp от имени которого будет происходить выключение
pass123 пароль пользователя
640 480 параметры разрешения экрана, можно не указывать

Всего этого достаточно, чтобы выполнить дистанционное завершение работы на windows сервере. Пользователю необходимо передать 2 файла:

Важно, чтобы они лежали в одной папке. При запуске батника произойдет подключение rdp пользователя и выполнится скрипт завершения работы. Задача выполнена.

Удаленное выключение linux сервера

Здесь все оказалось значительно проще. Сразу же было найдено рабочее решение, которое позволяет без проблем удаленно выключить любой linux сервер. Задача решается стандартными средствами putty. Эту программу можно запускать из командной строки с параметрами. В качестве параметров можно указать файл с командами для выполнения, адрес сервера, пользователя и пароль.

Подготовим все необходимое. Сначала создаем простой текстовый документ shutdown.txt следующего содержания:

Дальше создаем bat файл serv-rem-shut.bat с таким содержимым:

shutdown.txt текстовый файл с командой на отключение
22 номер порта ssh
root имя пользователя, от которого будет выполняться команда на удаленное выключение, лучше создать отдельного
rootpass пароль этого пользователя
10.10.5.15 адрес linux сервера

Передаем пользователю 3 файла, сложенные в одну папку:

  • putty.exe
  • shutdown.txt
  • serv-rem-shut.bat

Теперь при запуске скрипта serv-rem-shut.bat серверу по сети будет отправлена консольная команда на завершение работы. При этом не будет задано никаких вопросов. Сервер просто молча выключится.

Заключение

Вот такие нехитрые способы были мной придуманы и реализованы. Тут еще важно обеспечить доступ к локальной сети, в которой живут серверы. В моем случае openvpn позволяет выполнить удаленное выключение компьютеров даже через интернет.

Уверен, существует множество других возможностей погасить сервер удаленно. Буду рад, если в комментариях со мной кто-нибудь поделится своими идеями и опытом на этот счет.

Удаленное выключение компьютеров на ночь

Проблема

Требуется обеспечить принудительное выключение определенных клиентских компьютеров в ночное время. Все компьютеры являются членами домена Active Directory.

Теория

Как удаленно выключить компьютер?

Вариантов удаленного выключения существует довольно много:

  • через графическую консоль Управление компьютером (Computer Manager), подключенную к удаленному компьютеру;
  • через штатную утилиту shutdown.exe;
  • с помощью сценария PowerShell;
  • и т.п.

На мой взгляд, для автоматизации задачи массового принудительного удаленного выключения компьютеров лучше всего подходит утилита PsShutdown.exe, являющаяся частью пакета PsTools.

Вариант команды PsShutdown может быть таким:

Описание используемых ключей:

image

Как сделать выборку компьютеров?

Можно, конечно, вручную создать текстовый файл, в котором перечислить все компьютеры, которые следует выключать. А можно автоматизировать создание актуальной выборки на основе данных из Active Directory.

Проще всего сделать выборку с помощью утилиты dsquery.exe, присутствующей на серверах или в составе пакета RSAT.

Ниже приведен вариант выборки, создающей список всех компьютеров из контейнера Desktops в домене corp.gorbunov.pro:

C:>DSQUERY * "OU=Desktops,DC=corp,DC=gorbunov,DC=pro" -filter (objectCategory=computer) -attr name -l > C:\Scripts\Computers.txt

Финальное решение

Шаг 1

Создаем на сервере папку C:\Scripts, в которую копируем утилиту PsShutdown.exe.

Шаг 2

В папке C:\Scripts создаем пакетный файл под названием RemoteShutdown.bat.

Файл создает выборку C:\Scripts\Computers.txt и затем запускает массовое выключение компьютеров из выборки.

Для контроля работы файла RemoteShutdown.bat создается файл журнала RemoteShutdownLog.txt.

Листинг файла RemoteShutdown.bat:

DSQUERY * " OU=Desktops,DC=corp,DC=gorbunov,DC=pro " -filter ( objectCategory=computer ) -attr name -l > C:\Scripts\Computers.txt

C:\Scripts\PsShutdown -s -f -t 300 -c -n 10 -e p:0:0 -m "Night shutdown. Please contact Servicedesk if you have any questions. Servicedesk phone: 123-45-67." @C:\Scripts\Computers.txt > C:\Scripts\RemoteShutdownLog.txt

Для своей сети замените OU=Desktops,DC=corp,DC=gorbunov,DC=pro на путь к своему домену и контейнеру с компьютерами. Фильтр objectCategory=computer можно заменить на свой LDAP-запрос.

Выключаем компьютер удаленно

Для того, чтобы иметь возможность завершать работу ПК удаленно, вам не потребуется дополнительное ПО. Windows уже имеет в версиях «Профессиональная» и «Максимальная» все необходимые функции.


Откройте окно «Выполнить», нажав комбинацию клавиш «Win+R» на компьютере, которым вы хотите управлять. Введите «gpedit.msc» (без кавычек) и подтвердите нажатием «Enter».

В открывшемся окне в разделе «Конфигурация компьютера» перейдите к строке «Конфигурация Windows» и нажмите на строке «Параметры безопасности».

Удаленное выключение. В групповой политике Windows можно настроить функцию дистанционного выключения ПК через сеть

Удаленное выключение. В групповой политике Windows можно настроить функцию дистанционного выключения ПК через сеть

В правой части зайдите в «Локальные политики | Назначение прав пользователя» и дважды щелкните по «Принудительное удаленное завершение работы». Внизу нажмите на кнопку «Добавить пользователя или группу…» и в поле добавления имен напишите «Все» без кавычек.

Подтвердите все изменения, нажав «ОК». Перезагрузите ПК.

Теперь вы можете использовать свой компьютер для удаленного выключения другого компьютера из домашней сети. Для этого откройте «Выполнить», нажав «Win+R», введите «cmd» и подтвердите нажатием «Enter».

Введите команду «shutdown -s -t 10 -m \имя компьютера», чтобы выключить другой компьютер через десять секунд. Если необходимо задать временной промежуток в пять минут, то команда будет выглядеть так: «shutdown — s — t 300 -m \имя компьютера».

Вместо имени ПК можно указать IP-адрес, например: «shutdown -s — t 300 -m \192.168.1.12».

Читайте также: