ShS's Blog

Just another sysadmin's weblog

Баг shutdown.exe в Windows XP

Posted by shs на 2010/11/20

Началось все с того, что необходимо было решить простую задачку: предоставить рядовому доменному пользователю право на удаленную перезагрузку одного из member-серверов в домене. Перезагрузка должна осуществляться при помощи штатной утилиты shutdown. Все рабочие станции в домене, а, значит, и та, с которой пользователь будет давать команду shutdown, работают под ОС Windows XP, сервера – под Windows 2003.
Собственно, задачка простая: понятно, что пользователю необходимо предоставить некие привилегии на целевом сервере, чтобы он получил право на его перезагрузку. И так, лезем в локальные политики безопасности сервера и (в разделе “\Security Settings\Local Policies\User Rights Assignment” или, если по-русски, “Параметры безопасности\Локальные политики\Назначение прав пользователя”) находим следующие параметры: “Shutdown the system” (“Завершение работы системы”) и “Force shutdown from a remote system” (“Принудительное удаленное завершение работы”). При ближайшем рассмотрении понимаем, что первый параметр отвечает за предоставление привилегии локальной перезагрузки системы (а, значит, он нам не годится), а второй – удаленной системы (то, что надо). Ага, включаем пользователя в перечень, пользователей, которым предоставлено право “Force shutdown from a remote system” и идем на заслуженный отдых. Но, оказывается, что проделанных действий почему-то недостаточно, и при запуске команды shutdown –r –f –t 01 –m \\server_name пользователь получает сообщение «Клиент не обладает требуемыми правами». После продолжительного гугления с удивлением наткнулся на решение, в котором утверждалось, что пользователю также необходимо предоставить привилегию “Force shutdown from a remote system” и на клиентской локальной системе (на той системе, где пользователь будет запускать команду shutdown, чтобы дать команду удаленной системе начать завершение работы). От безысходности решил проверить. И, что вы думаете? Оказалось этот способ действительно работает! Некоторое время спустя, коллега Dr.Night поделился еще одной ссылкой на блог MS, с описанием этого бага. В этом блоге говорится, о том, что, если вы пытаетесь перезагрузить локальную систему, то команда shutdown ошибочно требует наличия у пользователя привилегии SeRemoteShutdownPrivilege (параметр безопасности “Force shutdown from a remote system”) в локальной системе. Но, как видно из примера, с которого я начал эту заметку, команда shutdown ошибочно требует наличия привилегии SeRemoteShutdownPrivilege (параметр безопасности “Force shutdown from a remote system”) в локальной системе даже тогда, когда мы ничего не хотим делать с локальной системой. В том же блоге предлагается элегантное и универсальное решение для обхода этого бага: предоставить группе пользователей “INTERACTIVE” (“ИНТЕРАКТИВНЫЕ”) привилегии SeRemoteShutdownPrivilege (параметр безопасности “Force shutdown from a remote system”), что легко проделать при помощи групповых политик.

Реклама

комментариев 8 to “Баг shutdown.exe в Windows XP”

  1. Марат said

    Добавить пользователя или группу не активно, как быть? Спасибо.

  2. Марат said

    Зашёл на целевом сервере в локальные политики безопасности сервера и вижу, что не активно Добавить пользователя или группу

  3. Марат said

    Всё верно, является.

    • shs said

      Для DC (по умолчанию) значение интересующего вас параметра безопасности («Принудительное удаленное завершение работы») уже задано в Default Domain Controller Policy (DDCP), которая приоритетнее чем локальная политика (правило LSDOU). IIRC, если параметр безопасности определен в вышестоящей политике (Site, Domain, OU), то редактор групповой политики не позволяет изменять этот параметр в локальном GPO.

      Кроме того, изменение локального GPO на DC — это моветон, т.к. надо стараться, чтобы все DC в домене имели одинаковые параметры безопасности, поэтому для DC изменения в политиках лучше всего вносить в DDCP.

  4. Angel-Keeper said

    Использовать командлет restart-server не кошерно?!

    • shs said

      Я знаю «400 сравнительно честных способов отъема денег у населения» способов удаленной перезагрузки компьютеров, но речь в данной заметке идет именно о shutdown.exe ;)
      Правильнее будет сказать — о баге shutdown.exe.

      PS Видимо вы описАлись: командлет, предназначенный для рестарта компьютеров, называется Restart-Computer.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: