Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Удаленное завершение процесса на сервере пользователем AD (http://forum.oszone.net/showthread.php?t=309717)

brainhook 28-12-2015 14:05 2589103

Удаленное завершение процесса на сервере пользователем AD
 
Доброго времени суток.

Есть задача завершать зависший процесс на терминальном сервере пользователем домена. То есть у обычного пользователя (по правам) зависает например WORD.EXE на удаленном сервере. Одно время частенько зависал. Пока процесс не грохнешь работать нормально не получается. Одно время я это делал сам имея права администратора домена. Потом надоело и я решил дать каждому пользователю по pskill и bat-ник к нему, чтобы они сами свои зависшие процессы грохали. Но оказалось, что если админ удаленно убивает процесс с именем word.exe то естественно завершаются все процессы с этим именем у других пользователей, а если запускать от имени простого пользователя домена, то ему не хватает каких-то прав. Вот, собственно, и вопрос: какие ему нужны права, чтобы убивать свои же процессы на удаленном сервере, но не трогать соседей (как я понимаю, по задумке разделения прав он и не должен трогать чужие условно говоря word.exe).
Как вы уже поняли, я пытался решать проблему pskill, но если у кого-то есть предложение другим способом это делать, то мне не принципиально, главное, чтобы работало.

DarckSol 28-12-2015 14:28 2589119

1) TASKKILL /F /IM notepad.exe /IM mspaint.exe /IM lsass.exe /IM etc...
2) TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
3) TASKKILL /S SERVER /U Mydomain\User /P UserPass /FI "IMAGENAME eq word*"
+++++++++++++++++++bat+++++++++++++
@echo off
set passwd="Ваш пароль: "
TASKKILL /S SERVER /U Mydomain\%username% /P %passwd% /FI "IMAGENAME eq word*"
pause
exit
+++++++++++++++++++++++++++++++
V_2
@echo off
TASKKILL /S 192.168.0.243 /U MyDomain\user /FI "USERNAME eq word*"
exit /b
-------------------------------------------------------
TASKKILL /S 192.168.0.243 /U MyDomain\user /FI "USERNAME ne NT*" /IM * - завершить все процессы, выполняющиеся в контекстах учетных записей, не начинающихся со строки NT на компьютере с IP-адресом 192.168.0.243. При подключении к удаленной системе используется имя пользователя user в домене Mydomain. Пароль не задан и будет запрошен при выполнении команды.
+++++++++++++++++++++++++++++++
TASKKILL /S SERVER /U Mydomain\User /P UserPass /FI "IMAGENAME eq note*" - завершить все процессы, имя исполняемого файла которых начинается со строки note на удаленном компьютере с именем SERVER.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
ПС: IMAGENAME eq, ne
ne - НЕ РАВНО ЗНАЧЕНИЮ (IMAGENAME ne WORD*) убьет процессы НЕ начинающиеся с этой фрасы
eq - РАВНОЕ ЗНАЧЕНИЮ (IMAGENAME eq WORD*) убьет соответствующий процесс
+++++++++++++++++++++++++++++++
Думаю так можно попробовать

Fantastish 28-12-2015 14:33 2589123

1) TASKKILL /F /IM notepad.exe /T - Лучше так (сделать батник и положить им на рабочий стол, так решилась у меня проблема)
а что так сильно виснет терминал, может стоит добавить памяти + проц, рассмотреть возможность использовать ssd =)?

DarckSol 28-12-2015 14:51 2589135

Цитата:

Цитата Fantastish
а что так сильно виснет терминал, может стоит добавить памяти + проц, рассмотреть возможность использовать ssd »

Цитата:

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

Fantastish 28-12-2015 15:00 2589141

NAS/SAS 10Raid и норм =)
+ выделить еще 1 виртуальный проц

Iska 28-12-2015 16:11 2589173

Цитата:

Цитата brainhook
Но оказалось, что если админ удаленно убивает процесс с именем word.exe то естественно завершаются все процессы с этим именем у других пользователей, »

Что мешает указывать при этом контекст конкретного пользователя? Оп-ля — во втором же сообщении :).

DarckSol 28-12-2015 16:30 2589180

Так вопрос задали, а ответ видимо не читают.

brainhook 28-12-2015 16:55 2589187

DarckSol, спасибо за скрипт, но проблема не столько в самом скрипте (с синтаксисом pskill я разобрался более-менее), а в том, что обычному пользователю отказано в доступе при его выполнении. И я не совсем понимаю какими политиками это регламентируется, т.е. как ему дать возможность удаленного выполнения pskill. Если я правильно понял, то контекст решает только проблему
Цитата:

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

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

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

Fantastish 28-12-2015 17:33 2589205

хз TASKKILL работает из под пользователя и убивает тока у пользователя процесс

Iska 29-12-2015 03:39 2589350

Цитата:

Цитата brainhook
Идеальное решение данной проблемы - дать возможность пользователям убивать свои зависшие экземпляры программ. »

Идеальное решение проблемы — не пытаться чесать за правым ухом задней левой ногой, а разобраться в причинах якобы «зависаний».

brainhook 29-12-2015 12:20 2589459

Цитата:

Идеальное решение проблемы — не пытаться чесать за правым ухом задней левой ногой, а разобраться в причинах якобы «зависаний».
Вот что за люди? У меня есть конкретная проблема, я её сформулировал на мой взгляд достаточно четко, но всё равно нашелся кто-то, кто придрался к моей небольшой ремарке и предлагает решать не ту проблему, с которой я пришел на форум, а ту которую он считает нужным решать. По поводу зависаний я зашел в тупик уже давно. Проблемы скорее всего из-за того, что word или excel вызывается из проприоретарной CRM и начинает сразу после вызова жрать 100% CPU на одном ядре. Никак воспроизвести проблему под моим надзором не удается, я узнаю о ней постфактум. Всё что нагуглил по поводу подобных проблем с офисом не помогает. Обновил и пропатчил его уже со всех сторон. Проблема возникает вообще без каких-либо закономерностей. Сервер может простаивать в данный момент. Может CRM как-то некорректно формирует документ в каких-то условиях. Но поскольку она проприоретарная, то для меня это просто "черный ящик", техподдержка помогает только за очень большие деньги. Проще написать скрипт, который убивает зависший word. Всё закрыли эту тему.

По поводу taskkill. С ней та же проблема, что и с pskill: из-под админа работает, но из-под пользователя - нет. Конкретно taskkil пишет "Ошибка. Вход в систему не произведен". Логин и пароль пользователя, на котором тестировал естественно правильно написан. Поэтому вопрос: какие права или политки надо использовать для работы консольной утилиты по сети?

Iska 29-12-2015 12:22 2589460

Цитата:

Цитата brainhook
Вот что за люди? У меня есть конкретная проблема, я её сформулировал на мой взгляд достаточно четко, но всё равно нашелся кто-то, кто придрался к моей небольшой ремарке и предлагает решать не ту проблему, с которой я пришел на форум, а ту которую он считает нужным решать. »

brainhook, да бога ради, решайте.

Fantastish 29-12-2015 13:36 2589502

Цитата:

Цитата brainhook
Конкретно taskkil пишет "Ошибка. Вход в систему не произведен". »

тогда не по exe убивать процесс, а по PID, попробуйте
з.ы. погодите вы удаленно это делаете или прям в рдп сессии у пользователя для теста?

brainhook 29-12-2015 13:55 2589511

Цитата:

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

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

Fantastish 29-12-2015 14:12 2589516

ну размести ярлык на рабочем столе у пользователя, а лучше cmd и запусти прям в сеансе у пользователя, где убивается приложение
просто как то жирно получается, чтобы пользователь на локальной машине запускал скрипт и он убивал процесс свой же
Я возможно вижу решение на основе PS тока и то не факт


Время: 21:58.

Время: 21:58.
© OSzone.net 2001-