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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   [решено] как следить за службой? (http://forum.oszone.net/showthread.php?t=180535)

BANDI-OGA 14-07-2010 04:36 1452943

как следить за службой?
 
проблема такая, у нас стоит сервер печати, там подключены принтера, через них идет печать (ну это не суть важна), так вот, по какой то причине происходит забивание задания в одном из принтеров и появляется служба WINWORD, при удалении ее печать проходит, как мне следить за этой службой без захода на сервер?

Angry Demon 14-07-2010 07:54 1452975

Цитата:

Цитата BANDI-OGA
появляется служба WINWORD

По секрету скажу, не существует в природе такой службы.
Ещё раз чётко и внятно объясните проблему (только без "ну это не суть важна"), а то и ответы будут такими же.

BANDI-OGA 14-07-2010 09:10 1452994

не правильно выразился:) не служба, а процесс WINWORD.exe
т.е. при печатании процесс WINWORD.exe появляется, а когда печать забивается (т.е. копятся задания на печать), то я этот процесс убиваю и печать проходит вся, т.е. мне надо мониторить этот процесс, чтоб каждый раз не залазить на сервак и не смотреть зависла ли печать или нет, может есть какая прога, чтоб смс отправляла

monkkey 14-07-2010 11:37 1453074

Удалите для начала Microsoft Office с сервера печати. Или хотя бы выясните, с какой радости Word запускается при создании очереди печати.

BANDI-OGA 14-07-2010 12:06 1453103

microsoft office на сервер нужен, подскажите как можно мониторить процесс удаленно, не залазя на сервак?

monkkey 14-07-2010 16:42 1453285

Process Explorer v12.04

QRS 14-07-2010 17:33 1453312

Цитата:

Цитата BANDI-OGA
как можно мониторить процесс удаленно »

Рекомендую powershell:

$pr = Get-WMIObject Win32_Process -computer COMPUTERNAME | where-object {$_.Name -eq 'WINWORD.exe'}
if($pr -eq $null){процесс не обнаружен}else{процесс работает}


Естественно этот код запускается под учетной записью, имеющей админские права на удаленном компьютере.

BANDI-OGA 15-07-2010 06:36 1453553

Цитата:

Рекомендую powershell:

$pr = Get-WMIObject Win32_Process -computer COMPUTERNAME | where-object {$_.Name -eq 'WINWORD.exe'}
if($pr -eq $null){процесс не обнаружен}else{процесс работает}

Естественно этот код запускается под учетной записью, имеющей админские права на удаленном компьютере.
я не сильно шарю в написании скриптов, подскажите, проверяю в powershell Ваш скрипт (допустим на taskmgr.exe процессе), за место {процесс не обнаружен} вставляю taskmgr.exe, скрипт у меня запускает этот taskmgr.exe или подскажите разобраться

QRS 15-07-2010 18:18 1453994

Вместо процесс обнаружен вставь:

$a = new-object -comobject wscript.shell
$b = $a.popup("WINWORD!!!",60,"ОН ОПЯТЬ ЗАПУСТИЛСЯ :(((((",0)


"60" - количество секунд, которое диалог будет отображаться на экране, если пользователь никак не отреагирует на него.
Дальше можно диалоговое окно превратить в "Yes/no"-запрос и по ответу Да принудительно выполнять завершение удаленного процесса (только я сам не силен в powershell - так кропаю помаленьку, когда задачки появляются).

BANDI-OGA 16-07-2010 05:43 1454254

Цитата:

Вместо процесс обнаружен вставь:

$a = new-object -comobject wscript.shell
$b = $a.popup("WINWORD!!!",60,"ОН ОПЯТЬ ЗАПУСТИЛСЯ ((((",0)

"60" - количество секунд, которое диалог будет отображаться на экране, если пользователь никак не отреагирует на него.
Дальше можно диалоговое окно превратить в "Yes/no"-запрос и по ответу Да принудительно выполнять завершение удаленного процесса (только я сам не силен в powershell - так кропаю помаленьку, когда задачки появляются).
подскажи, как привязать этот скриптик к процессу?

BANDI-OGA 16-07-2010 06:01 1454261

Не удается загрузить файл C:\Users\xxxx\Desktop\БезИмени1.ps1, так как выполнение скриптов запрещено для данной системы. Введите "get-help about_signing" для получения
дополнительных сведений.
At line:0 char:0

подскажите в чем проблема?

QRS 16-07-2010 21:40 1454735

Цитата:

Цитата BANDI-OGA
подскажи, как привязать этот скриптик к процессу? »

не понял вопроса...

пишешь powershell скрипт:

$pr = Get-WMIObject Win32_Process -computer COMPUTERNAME | where-object {$_.Name -eq 'WINWORD.exe'}
if($pr -eq $null){}else{
$a = new-object -comobject wscript.shell
$b = $a.popup("WINWORD!!!",60,"ОН ОПЯТЬ ЗАПУСТИЛСЯ ((((",0)
}


Вместо COMPUTERNAME указываешь реальное сетевое имя сервера, который собираешься мониторить; вместо WINWORD.EXE - указываешь имя процесса.
Скрипт запускаешь локально на своей машине с определенным интервалом... попробуй сначала руками запускать.

BANDI-OGA 18-07-2010 07:07 1455362

QRS - Спасибо!! все получилось!

BANDI-OGA 18-07-2010 11:00 1455399

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

QRS 19-07-2010 18:53 1456214

Запусти соответствующий процесс на сервере.

Открой окно powershell, в нем запусти строку, которой проверяешь наличие процесса:

$pr = Get-WMIObject Win32_Process -computer COMPUTERNAME | where-object {$_.Name -eq 'WINWORD.exe'}

дальше набери:
$pr
или
$pr | gm

там увидишь все свойства, которые есть у процесса; в гугле можешь посмотреть что значит каждый из параметров.
За объем памяти, по-моему отвечает $pr.WS:


if($pr -eq $null){echo "он не запустился"}else{
if($pr.WS -gt 30Mb) {
$a = new-object -comobject wscript.shell
$b = $a.popup("WINWORD!!!",60,"ОН ОПЯТЬ ЗАПУСТИЛСЯ ((((",0)
}
else{
echo "запустился, но ОЗУ меньше 30Мб!"
}
}


но может быть будет проще сразу завершить процесс?!:
if($pr -eq $null){echo "он не запустился"}else{
if($pr.WS -gt 30Mb) {$pr.Terminate(0)}
}


PS модератору: пора тему переносить в раздел программирование!!! :)

BANDI-OGA 20-07-2010 04:50 1456482

QRS - спасибо, все получилось!! можно закрывать тему
PS: надо изачать powershell:)


Время: 20:14.

Время: 20:14.
© OSzone.net 2001-