Как корректно выполнить Reboot по WMI сетевого компа

Все темы, касающиеся администрирования и работы с Windows/Windows Server.

Модератор: Sebas

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 04.04.2013 (Чт) 20:28

Имеется WMI код...
Код: Выделить всё
Private Sub cmd_Restart_Click()
Dim strComputer As String
'strComputer = "."
strComputer = "192.168.6.1"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate," _
& "(Shutdown)}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery( _
  "Select * from Win32_OperatingSystem")
For Each ObjOperatingSystem In colOperatingSystems
    ObjOperatingSystem.Reboot ' Для перезагрузки
Next
End Sub

Когда strComputer = "." все работает прекрасно, но когда указываешь соседний комп по IP="192.168.6.1" связанный с ним по сети одной рабочей группой, то компилятор выдает ошибку доступа, пишет: “Нет разрешения”.
Вопрос в том, какое я должен включить разрешение соседнего компа, чтобы его перезагрузить по сети? Причем доступ по нулевой сессии разрешен на обоих компах.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Хакер » 04.04.2013 (Чт) 22:16

А что, нужно обязательно через WMI? Почему не устраивает перезагрузка через RPC (команда shutdown)?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 05.04.2013 (Пт) 15:16

Ввожу...
shutdown -r -m \\192.168.6.1
Получаю ответ: "Сетевой путь не найден". А машина в сети есть. Доступ по сети на нее тоже есть. На других компах тоже самое. В чем прикол?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Хакер » 05.04.2013 (Пт) 15:20

Vova_2581 писал(а):Доступ по сети на нее тоже есть.

Что значит «доступ по сети»?

Да и как я мог проглядеть это:
Vova_2581 писал(а):о компилятор выдает ошибку доступа, пишет: “Нет разрешения”.

Компилятор выдаёт ошибку доступа... мама дорогая...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 05.04.2013 (Пт) 16:05

А при чем тут твоя мама? :shock:
Доступ по сети значит, что при обзоре в сетевом окружении машина видна и доступ на нее имеется. Что еще нужно?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Хакер » 05.04.2013 (Пт) 16:17

Vova_2581 писал(а):А при чем тут твоя мама? :shock:

А почему моя? Она тут тем же боком, что и компилятор.

Vova_2581 писал(а):Доступ по сети значит, что при обзоре в сетевом окружении машина видна и доступ на нее имеется. Что еще нужно?

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

Вполне возможно, что SMB-протоколу на целевой машине доступ открыт, а протоколу DCERPC доступ закрыт.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 05.04.2013 (Пт) 16:45

Хакер писал(а):...тем же боком, что и компилятор

Ладно... написал неправильно, проехали...
Хакер писал(а):Вполне возможно, что SMB-протоколу на целевой машине доступ открыт, а протоколу DCERPC доступ закрыт.

И что же в таком случаи делать? Как DCERPC открыть доступ?

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 05.04.2013 (Пт) 16:53

Может быть попробовать использовать объект SWbemLocator из WMI? Но тогда нужно явно указывать логины и пароли. Что же мне их создавать на каждую машину? У меня на работе их 28!

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение ger_kar » 06.04.2013 (Сб) 12:12

У тебя какая модель доступа стоит? Гостевая или обычная? Если гостевая то прав, для того чтобы выключать компьютер по сети у тебя нет по определению. Гость и есть гость. При этом совершенно неважно что ты будешь использовать моникер или SWbemLocator. И явное указание пользователей с паролями ничего не даст. И вообще, даже если модель доступа обычная, чтобы выключать компьютер по сети удаленно, должно выполняться множество условий. А для того, что-бы использовать именно моникер, нужно еще чтобы на каждом из компьютеров, которые будут выключаться была учетная запись с идентичными параметрами учетной записи, от имени которой происходит запуск. Т.е. должны совпадать имя учетной записи и пароль и привилегии.
Бороться и искать, найти и перепрятать

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 06.04.2013 (Сб) 15:25

ger_kar писал(а):У тебя какая модель доступа стоит? Гостевая или обычная?

Мне не совсем понятно выражение «модель», если правильно понимаю Вашу логику, то походу обычная... Никаких паролей при входе, профиль администратора.
ger_kar писал(а):При этом совершенно неважно что ты будешь использовать моникер или SWbemLocator. И явное указание пользователей с паролями ничего не даст.

Даже если указать логин и пароль администратора?
ger_kar писал(а):...должно выполняться множество условий...

Блин... неужели все так сложно?
ger_kar писал(а):...для того, что-бы использовать именно моникер, нужно еще чтобы на каждом из компьютеров, которые будут выключаться была учетная запись с идентичными параметрами учетной записи, от имени которой происходит запуск.

Я Вас понял. Понимаете... все машины, которые мы получили, имеют одинаковое железо, и потому система сначала была установлена на одну, а потом через Image-образ Acronis’a скопирована на все остальные. Поэтому настройки везде одинаковые.

P.S. Попробую явно указать логин и пароль одинаковый для двух машин и запуск по-умолчанию (без ввода паролей), а потом еще раз Reboot по моникеру WMI. Если не получиться, то уже склоняюсь к тому, чтобы писать клиент-серверное приложение...

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение ger_kar » 06.04.2013 (Сб) 16:07

Vova_2581 писал(а):Мне не совсем понятно выражение «модель», если правильно понимаю Вашу логику, то походу обычная
Причем здесь логика? Есть конкретная политика, которая обычно стоит на гостевой модели доступа (На Win XP по крайней мере так, на других не знаю).
Model.png
Model.png (13.82 Кб) Просмотров: 13089
Последний раз редактировалось ger_kar 06.04.2013 (Сб) 16:54, всего редактировалось 1 раз.
Бороться и искать, найти и перепрятать

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение ger_kar » 06.04.2013 (Сб) 16:24

Vova_2581 писал(а):Даже если указать логин и пароль администратора?
Если модель гостевая, то по барабану что ты укажешь, потому как все пользователи, пытающиеся получить доступ, будут в любом случае идентифицированы как гости.
Vova_2581 писал(а): ger_kar писал(а):...должно выполняться множество условий...
Блин... неужели все так сложно?
Абсолютно ничего сложного нет, нужно просто настроить правильно политики безопасности и все. Судя по ответам, ты понятия об этом не имеешь. Поэтому запусти secpol.msc и внимательно изучи две вкладки 'Назначение прав пользователя' и 'Параметры безопасности'
Policy.png
Policy.png (4.89 Кб) Просмотров: 13089

С таким же успехом к этим вкладкам можно добраться запустив gpedit.msc
Policy2.png
Policy2.png (7.06 Кб) Просмотров: 13089
Бороться и искать, найти и перепрятать

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение ger_kar » 06.04.2013 (Сб) 16:50

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

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

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

По умолчанию:
На рабочих станциях и серверах:
"Администраторы".

На контроллерах домена:
"Администраторы",
"Операторы сервера".

Мне эксперименты ставить не на чем, да и времени на это нет. А ты можешь попробовать и написать полученный результат. При этом проверять лучше сразу оба метода - утилитой shutdown, и через WMI. Для экспериментов (и не только) удобно использовать shutdown -i. Не знаю как WMI, а через shutdown вполне может прокатить. Но это только предположение. А изменение модели доступа - это проверенный и надежный метод.
Бороться и искать, найти и перепрятать

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 06.04.2013 (Сб) 20:58

ger_kar
Спасибо за разъяснения. Информации много, буду переваривать и пробовать.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение ger_kar » 06.04.2013 (Сб) 21:12

Да и еще немаловажный фактор могут оказать заблокированные файрволом порты.
Хакер писал(а):На сетевом окружении свет клином не сошёлся: это всего лишь один из тысяч протоколов, работающих по сети. Вполне возможно, что SMB-протоколу на целевой машине доступ открыт, а протоколу DCERPC доступ закрыт.
Про это тоже не нужно забывать.
Бороться и искать, найти и перепрятать

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 07.04.2013 (Вс) 17:20

ger_kar писал(а):...заблокированные файрволом порты

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

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 08.04.2013 (Пн) 22:40

Уважаемый ger_kar, Вашими молитвами - все получилось! :)

Алгоритм моих действий был таким...
Вариант 1
Сначала я нашел модель доступа запустив secpol.msc – «Сетевой доступ: модель совместного доступа и безопасности для локальных учетных записей» и он действительно был установлен, как гостевой. Переключил на «Обычный»...
Изображение
Попробовал перезагрузить удаленно – к сожалению, не получилось ("Сетевой путь не найден").
Пробовал менять другие настройки политики, но все без толку. Да и в основном везде фигурировал профиль администратора по умолчанию.

Вариант 2
Не меняя того, что уже сделал в варианте 1, проверил, что обе тестовые машины загружаются под одинаковым профилем и этот профиль именно администратора, пароль пустой.
Попробовал перезагрузить удаленно – не получилось ("Сетевой путь не найден").

Вариант 3
Установил пароль администратора, повторил все тоже самое на второй машине. Перезагрузил их обе и вошел в систему под профилем администратора с установленным паролем. Выполнил shutdown -r -m \\192.168.6.1

О, Всевышний Господь! Ты услышал наши мольбы! Аллилуйя!

Получилось! :)
Соседняя машина перезагрузилась удаленно.
Самое интересное, что если пароль администратора пустой, то перезагрузки не происходит, а происходит: "Сетевой путь не найден"! Ну, наверное, это правильно, чтобы всякие хакеры не зная «броду» не могли таким образом баловаться и шутить над друзьями и подругами для прикола.
Только, когда пароль указывается явно, и он одинаков для обеих машин, то все получается.

Далее осталось дело за малым...
Выполнил команду control userpasswords2 в окне «Выполнить», и отменил требование в обязательном порядке вводить пароль при входе в систему (выделил нужного пользователя (а это администратор) и снял «птичку»...).

Вот, собственно говоря, и все!
СПАСИБО, ger_kar! :)

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 08.04.2013 (Пн) 22:44

P.S. Да!! WMI тоже срабатывает! :)

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение ger_kar » 08.04.2013 (Пн) 22:59

Vova_2581 писал(а):Самое интересное, что если пароль администратора пустой, то перезагрузки не происходит, а происходит: "Сетевой путь не найден"! Ну, наверное, это правильно, чтобы всякие хакеры не зная «броду» не могли таким образом баловаться и шутить над друзьями и подругами для прикола.
Ну вообще то на мой взгляд это глюк, так как отсутствие доступа не должно интерпретироваться как неправильный путь. Судя по скрину у тебя Windows XP, а судя по глюку SP3. Вообще Windows SP2 и SP3 сильно отличаются поведением при сетевом доступе. На SP2 пароль запрашивался при доступе на сетевую шару. Т.е. можно было посмотреть список доступных ресурсов имея права гостя. И только при доступе на конкретный ресурс запрашивался пароль. В SP3 пароль просит сразу, при попытке доступа на удаленный хост. Видимо из-за этого и имеем "Сетевой путь не найден", хотя по идее должна бы быть "Нет прав" или что-то в этом духе.
Бороться и искать, найти и перепрятать

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Vova_2581 » 09.04.2013 (Вт) 20:03

Да, видимо, действительно глюк... Я так задолбал компьютеры своими экспериментами, что они от меня уже устали. :)
Еще раз – спасибо за помощь!

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Dmitriy2003 » 10.04.2013 (Ср) 21:04

Vova_2581 писал(а):...Что же мне их создавать на каждую машину? У меня на работе их 28!

Vova_2581 писал(а):Далее осталось дело за малым...
Выполнил команду control userpasswords2 в окне «Выполнить», и отменил требование в обязательном порядке вводить пароль при входе в систему (выделил нужного пользователя (а это администратор) и снял «птичку»...).

Печалька

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение ger_kar » 10.04.2013 (Ср) 21:58

А что тут печального?
Бороться и искать, найти и перепрятать

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Dmitriy2003 » 10.04.2013 (Ср) 22:46

ger_kar писал(а):А что тут печального?

Vova_2581 писал(а):Только, когда пароль указывается явно, и он одинаков для обеих машин, то все получается.

Vova_2581 писал(а):Далее осталось дело за малым...
Выполнил команду control userpasswords2 в окне «Выполнить», и отменил требование в обязательном порядке вводить пароль при входе в систему (выделил нужного пользователя (а это администратор) и снял «птичку»...).

Большая печалька

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение ger_kar » 11.04.2013 (Чт) 6:13

Dmitriy2003 писал(а):Большая печалька
Ну очень информативное сообщение ...
Бороться и искать, найти и перепрятать

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Как корректно выполнить Reboot по WMI сетевого компа

Сообщение Dmitriy2003 » 12.04.2013 (Пт) 18:17

ger_kar писал(а):Ну очень информативное сообщение ...

On computer XPClient1:
Run command -> netsh firewall set service RemoteAdmin enable
Run command -> netsh firewall add portopening protocol= tcp port= 135 name= DCOM_TCP135
Run command -> netsh firewall add allowedprogram program= %windir%\system32\wbem\unsecapp.exe name= UNSECAPP

Create Script wmitest.vbs ->
Код: Выделить всё
Const SW_NORMAL = 1

strComputer = "XPClient2"
strDomain = strComputer
strUser = "WMI_RM_Access"
strPassword = "Pa$$w0rd"

Wscript.Echo "Connecting to " & strComputer & "..."
Wscript.Echo

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")

Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, _
    "root\CIMV2", strUser, strPassword, "MS_409", "ntlmdomain:" + strDomain)

Set colSwbemObjectSet = objSWbemServices.ExecQuery("Select * From Win32_Process")

For Each objProcess in colSWbemObjectSet
    Wscript.Echo "Process Name: " & objProcess.Name
Next

Wscript.Echo

Set objOSSet = objSWbemServices.InstancesOf("Win32_OperatingSystem")

For Each objOS in objOSSet
    WScript.Echo objOS.CSName & vbNewLine & objOS.Caption & _
   vbNewLine & objOS.Version & vbNewLine & objOS.Manufacturer
    'WScript.Echo "Call 'Shutdown'... "
    'WScript.Echo objOS.Shutdown()
Next

Set objStartup = objSWbemServices.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = SW_NORMAL

strCommand = "shutdown.exe -s -t 30 -c WMI_RM_Access_Control_Shutdown"
Set objProcess = objSWbemServices.Get("Win32_Process")

intReturn = objProcess.Create(strCommand, null, objConfig, intProcessID)

If intReturn <> 0 Then
    Wscript.Echo "Process could not be created." & _      
        vbNewLine & "Command line: " & strCommand & _
        vbNewLine & "Return value: " & intReturn
Else
    Wscript.Echo "Process created." & _
        vbNewLine & "Command line: " & strCommand & _
        vbNewLine & "Process ID: " & intProcessID
End If

On computer XPClient2:
Make User Account -> Name: 'WMI_RM_Access'; Pass: 'Pa$$w0rd'; Member Of: 'Users'
Set Local Policy -> User Rights -> Deny Logon Localy for 'WMI_RM_Access' to TRUE
Set Local Policy -> User Rights -> Force shutdown from a remote system for 'WMI_RM_Access' to TRUE
Run command -> netsh firewall set service RemoteAdmin enable
Run DCOMCNFG -> Component Service -> Computer -> Properties -> COM Security -> Launch and Activation Permissions -> Edit Limits ->
Add 'WMI_RM_Access' User -> Set for 'WMI_RM_Access' User 'Remote Launch: True'; 'Remote Activation: True'
Run Administrative Tools -> Computer Management -> Services and Applications -> WMI Control -> Properties -> Security -> Root\CIMV2 ->
Security -> Add 'WMI_RM_Access' User -> Set for 'WMI_RM_Access' User 'Remote Activation: True' -> Root\CIMV2\ms_409 ->
Security -> Add 'WMI_RM_Access' User -> Set for 'WMI_RM_Access' User 'Remote Activation: True'


Вернуться в Windows (администрирование)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList