Запускается при загрузке машины у меня программа как сервис. Нужно выставить её приоритет в виндовсе ХР. Как это сделать ?
» Как выставить приоритет программе (как сервис) в WindowsXP ?
Ну чё ни кто не знает ?
ХЕЕЕЕЕЕЕЕЕЕЛЛЛЛЛЛЛЛЛЛЛПППППППП !!!!!!!!!!!!!
ХЕЕЕЕЕЕЕЕЕЕЛЛЛЛЛЛЛЛЛЛЛПППППППП !!!!!!!!!!!!!
Cuba
не поднимай темы.
не поднимай темы.
Сори за поднятие темы, но такая проблема:
Нужно изменить приоритет запускаемого сервиса.
По умолчанию он запускаеться в "Normal" нужно поставить ему "high"
Как это можно сделать ?
Нужно изменить приоритет запускаемого сервиса.
По умолчанию он запускаеться в "Normal" нужно поставить ему "high"
Как это можно сделать ?
Advanced_Guest
Вот что я нарыл во встроенной справке по ХР:
Цитата:
Только вот незадача. Прокатывает только если .exe меняешь .com Хотя может это мой локальный глюк.
Вот что я нарыл во встроенной справке по ХР:
Цитата:
Чтобы выделить системные ресурсы для программы MS-DOS и изменить время ее простоя
Откройте папку Мой компьютер.
Найдите программу MS-DOS (файл .exe), файл описания программы (PIF) или ярлык, который требуется изменить. Имя нужного файла см. в документации, поставляемой вместе с программой.
Щелкните значок правой кнопкой мыши и выберите команду Свойства.
В окне Свойства щелкните вкладку Разное.
Переместите ползунок Приоритет при ожидании для получения нужного результата.
Чтобы выделить программе в фоновом режиме больше ресурсов процессора, передвиньте ползунок в сторону Низкий.
Чтобы уменьшить выделяемые программе ресурсы процессора, передвиньте ползунок в сторону Высокий.
Только вот незадача. Прокатывает только если .exe меняешь .com Хотя может это мой локальный глюк.
Ici Chacal
Не совсем то
Не особо получиться изменить настройки сервиса таким образом
Нашёл способ менять вручную, когда сервис запущен (через продвинутый taskmanager), но надо каждый раз после рестарта менять, а это не то
Не совсем то
Не особо получиться изменить настройки сервиса таким образом
Нашёл способ менять вручную, когда сервис запущен (через продвинутый taskmanager), но надо каждый раз после рестарта менять, а это не то
Advanced_Guest
Если Вас устроит приоритет "Выше среднего", то завтра утром скрипт на VBS выложу.
"Высокий" у меня не получается. WMI не разрешает этого сделать. Я правда невнимательно
прочитал Ваш пост. Скрипт писал для notepad.exe . Может для сервиса можно и "высокий" поставить.
Если Вас устроит приоритет "Выше среднего", то завтра утром скрипт на VBS выложу.
"Высокий" у меня не получается. WMI не разрешает этого сделать. Я правда невнимательно
прочитал Ваш пост. Скрипт писал для notepad.exe . Может для сервиса можно и "высокий" поставить.
Process Supervisor, nnCron?
или использовать команду START (командная консоль). Применять так: start {/low |/normal |/high |/realtime} имя_приложения. Например, для запуска Блокнота с высоким приоритетом в меню "Выполнить" кнопки "Пуск" должно получиться примерно следующее: cmd /c start /high notepad
или использовать команду START (командная консоль). Применять так: start {/low |/normal |/high |/realtime} имя_приложения. Например, для запуска Блокнота с высоким приоритетом в меню "Выполнить" кнопки "Пуск" должно получиться примерно следующее: cmd /c start /high notepad
Bezzz
То что Вы предложили "cmd /c start /high notepad" работает. Мне стало еще интересней скриптом так запустить. Для запуска скриптом нужно вводить константу для указания приоритета процесса. Самое большое что я нашел в WMI 32nnn. Число точно не помню.
Теперь наверное найдется и больше. Спасибо.
То что Вы предложили "cmd /c start /high notepad" работает. Мне стало еще интересней скриптом так запустить. Для запуска скриптом нужно вводить константу для указания приоритета процесса. Самое большое что я нашел в WMI 32nnn. Число точно не помню.
Теперь наверное найдется и больше. Спасибо.
насчет способа cmd /c start /high - слышал и раньше. Вроде также был некий способ через реестр как-то подправить, чтоб всегда (если сервис запускается автоматически, а не вручную) запускался с нужным приоритетом. Вот его бы напомнить неплохо..
bredonosec
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder
Открываешь параметр List. Чем ближе к началу прописана группа, тем выше у нее приоритет и очередность запуска.
Создаешь там запись, типа blablabla
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Ищешь там свою службу AAAA
Если у нее не определен параметр Group, то создаешь его ("Правка-Создать-Строковый параметр". Название параметра указываем - "Group". Теперь надо определить его значение. Два раза кликаем на слово "Group", и в открывшемся окне пишем название созданной нами группы - "blablabla").
REBOOT
%)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder
Открываешь параметр List. Чем ближе к началу прописана группа, тем выше у нее приоритет и очередность запуска.
Создаешь там запись, типа blablabla
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Ищешь там свою службу AAAA
Если у нее не определен параметр Group, то создаешь его ("Правка-Создать-Строковый параметр". Название параметра указываем - "Group". Теперь надо определить его значение. Два раза кликаем на слово "Group", и в открывшемся окне пишем название созданной нами группы - "blablabla").
REBOOT
%)
Цитата:
Чем ближе к началу прописана группа, тем выше у нее приоритет и очередность запуска.- Насчет очередности запуска это логично. И совпадает со смыслом названия ветки.
Но приоритет-то всего 4 значения имеет. Если групп штук 10-20, то где определение границ, какая есть нормал, какя высокий, какая реалтайм?
Тема вроде "увядает". Я все же помещу два скрипта на vbs (работал все же), с подробностями. Может кому понадобится запускать не только на локальной но и на удаленной машине. Если процесс не запущен то первый скрипт:
[more]'*******************************************************************
' Язык: VBScript
' Описание: Запуск нового процесса с заданным приоритетом
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim objService ' Объект SWbemServices
Dim objProcess ' Объект SWbemObject (класс Win32_Process)
Dim objStartup ' Объект SWbemObject (класс Win32_ProcessStartup)
Dim objConfig ' Объект SWbemObject (экземпляр класса
' Win32_ProcessStartup)
Dim iError ' Значения, возвращаемое методом
Dim intProcessID ' Идентификатор созданного процесса
' Определяем константы
Const WINDOW = 9 'Константа от 0-12 разные способы отображения окна, 11-12-видно только в диспетчере задач
Const cPriority = 256 ' Константа определяет приоритет 32,64,128,256,16384,32768- "Выше среднего"
' 256 - "высокий", 16384-"ниже среднего"
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "." ' Точка для локального, имя для удаленного
' Подключаемся к пространству имен WMI
Set objService = GetObject("WinMgmts:\\" & _
strComputer & "\" & "Root\CIMV2")
' Создаем новый экземпляр класса Win32_ProcessStartup- новый процесс
Set objStartup = objService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
' Устанавливаем режим запуска в окне (свернуть,развернуть,скрыть вообще)
objConfig.ShowWindow =WINDOW
' Устанавливаем приоритет в зависимости от константы
objConfig.PriorityClass = cPriority
' Еще раз подключаемся к пространству имен WMI,к другому классу
Set objProcess = GetObject("WinMgmts:\\" & _
strComputer & "\" & "Root\CIMV2" & ":Win32_Process")
' Запускаем блокнот методом Create
iError = objProcess.Create _
("Notepad.exe", null, objConfig, intProcessID)
' Проверяем ошибку запуска
If iError <> 0 Then
' Выводим на экран сообщение об ошибке
WScript.Echo "При создании процесса NOTEPAD.EXE произошла ошибка"
Else
' Выводим на экран сообщение об удачном запуске если не нравится закоментируйте апострофом
WScript.Echo "Процесс NOTEPAD.EXE успешно запущен "
End If
'************************* Конец ***********************************
[/more]
Если процесс уже запущен и нужно изменить его приоритет то [more] '
' Язык: VBScript
' Описание: Изменение приоритета запущенного процесса
'
'*******************************************************************
Const cPriority = 256 'Та же самая константа что и в предыдущем сценарии
strComputer = "." 'Имя компьютера, для локального достаточно точки
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess In colProcesses
objProcess.SetPriority(cPriority)
'Закоментируйте если сообщение не нужно
WSH.Echo "Приоритет процесса notepad.exe = " & objProcess.Priority
Next
'Дальше можно закоментировать, если сообщение не нужно
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess In colProcesses
WSH.Echo "Приоритет процесса notepad.exe изменен = " & objProcess.Priority
Next [/more]
Если есть какие нибуть еще задачи по написанию скриптов на vbs, постараюсь помочь по мере сил.
[more]'*******************************************************************
' Язык: VBScript
' Описание: Запуск нового процесса с заданным приоритетом
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim objService ' Объект SWbemServices
Dim objProcess ' Объект SWbemObject (класс Win32_Process)
Dim objStartup ' Объект SWbemObject (класс Win32_ProcessStartup)
Dim objConfig ' Объект SWbemObject (экземпляр класса
' Win32_ProcessStartup)
Dim iError ' Значения, возвращаемое методом
Dim intProcessID ' Идентификатор созданного процесса
' Определяем константы
Const WINDOW = 9 'Константа от 0-12 разные способы отображения окна, 11-12-видно только в диспетчере задач
Const cPriority = 256 ' Константа определяет приоритет 32,64,128,256,16384,32768- "Выше среднего"
' 256 - "высокий", 16384-"ниже среднего"
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "." ' Точка для локального, имя для удаленного
' Подключаемся к пространству имен WMI
Set objService = GetObject("WinMgmts:\\" & _
strComputer & "\" & "Root\CIMV2")
' Создаем новый экземпляр класса Win32_ProcessStartup- новый процесс
Set objStartup = objService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
' Устанавливаем режим запуска в окне (свернуть,развернуть,скрыть вообще)
objConfig.ShowWindow =WINDOW
' Устанавливаем приоритет в зависимости от константы
objConfig.PriorityClass = cPriority
' Еще раз подключаемся к пространству имен WMI,к другому классу
Set objProcess = GetObject("WinMgmts:\\" & _
strComputer & "\" & "Root\CIMV2" & ":Win32_Process")
' Запускаем блокнот методом Create
iError = objProcess.Create _
("Notepad.exe", null, objConfig, intProcessID)
' Проверяем ошибку запуска
If iError <> 0 Then
' Выводим на экран сообщение об ошибке
WScript.Echo "При создании процесса NOTEPAD.EXE произошла ошибка"
Else
' Выводим на экран сообщение об удачном запуске если не нравится закоментируйте апострофом
WScript.Echo "Процесс NOTEPAD.EXE успешно запущен "
End If
'************************* Конец ***********************************
[/more]
Если процесс уже запущен и нужно изменить его приоритет то [more] '
' Язык: VBScript
' Описание: Изменение приоритета запущенного процесса
'
'*******************************************************************
Const cPriority = 256 'Та же самая константа что и в предыдущем сценарии
strComputer = "." 'Имя компьютера, для локального достаточно точки
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess In colProcesses
objProcess.SetPriority(cPriority)
'Закоментируйте если сообщение не нужно
WSH.Echo "Приоритет процесса notepad.exe = " & objProcess.Priority
Next
'Дальше можно закоментировать, если сообщение не нужно
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess In colProcesses
WSH.Echo "Приоритет процесса notepad.exe изменен = " & objProcess.Priority
Next [/more]
Если есть какие нибуть еще задачи по написанию скриптов на vbs, постараюсь помочь по мере сил.
Цитата:
приоритет-то всего 4 значения имеет
На самом деле приоритетов 32 %)
По умолчанию всем приложениям, запущенным пользователями и администраторами, присваивается базовый приоритет 8 (нормальный). Хотя пользователи также могут запускать приложения с приоритетом 4 (низкий) и 13 (высокий), и только администраторы могут запускать приложения с приоритетом 24 (приоритет реального времени).
;)
Цитата:
На самом деле приоритетов 32 %)
Про Base priority & thread priority 8*4 я знаю. %) Разница в том, что назначаются обычно только 4 названных тобою - thread приоритеты.
Хочешь сказать, что такой способ позволяет менять оба варианта приоритетов?
//ЗЫ. насчет "только администраторы могут реал-тайм назначать" - это встроенными утилитами? Просто как на 98, так и на хр, насколько помню, игрался с процесс вьюером - назначается. Кроме кернел процесса (возможно еще кого-то, не со всеми проверял).
Uriu
пасиб, в копилку отложил
Цитата:
только 4 названных тобою
Назначаются процессам. Но каждый процесс может порождать так называемые потоки. И каждый поток может тоже иметь свой приоритет, но относительно приоритета процесса, которые его породил. Короче эти названные приоритеты называют базовыми (по докам их шесть) И именно их можно можно изменить с помощью диспетчера задач или вызовом SetPriorityClass.
Цитата:
только администраторы могут реал-тайм назначать
Любой утилитой запущеной от имени любого пользователя, входящего в группу администраторы (локальные)
Цитата:
на 98
98-й понятия не имеет, что такое администратор ;)
Цитата:
игрался с процесс вьюером - назначается
Ты сам разве не локальный администратор? %)
Цитата:
кернел процесса
Это шо за зверь? У мну есть тока процесс System %)
Вообще то kernel моде это режим выполнения ядра, в котором собственно и выполняет код самой операционной системы (системные сервисы, драйверы устройств)
Все остальное выполняется в пользовательском режиме (user mode)
Цитата:
Это шо за зверь?процесс ядра на 98.
Цитата:
Ты сам разве не локальный администратор? %)- Да, а вот с какого акка в ХР игрался - не помню, возможно, что и с админского..
Цитата:
SetPriorityClassА в реестре такого значения нема? На 98 не нашел, интересно насчет ХР.
Просто по приоритету - ввел поиск Priority, нашел кучу ключей в разных ветках
навроде [more=ключей]
Код: [HKEY_CURRENT_USER\SOFTWARE\Microsoft\MSDAIPP\Providers\{9FECD570-B9D4-11d1-9C78-0000F875AC61}]
@="Microsoft Data Access Internet Publishing Provider DAV"
"Priority"=dword:08800000
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Multimedia\Audio Compression Manager\Priority v4.00]
[HKEY_CURRENT_USER\SOFTWARE\WinRAR\General]
"Priority"=dword:00000001
[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlayNATHelp\DPNHPAST]
"DirectPlay8Priority"=dword:00000002
[HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Transporter]
"Priority_FS"=dword:00000001
"Priority_Direct"=dword:00000003
"Priority_Internet"=dword:00000002
Имеется служба, а именно Sygate Personal Firewall. Запускается автоматически. Трюк "cmd /c start /high "service"" не помогает — вообще не запускается. Ни с именем приложения, ни с полным путём, ни с полным путём к cmd.
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services "Group"" пока не пробовал. Опасаюсь, что имя этой группы имеет какое-то принципиальное значение для ОС. Если это не так, и можно спокойно задавать своё имя, то на каком уровне приоритета запускаются службы, относящиеся к первой группе? Real time или просто high? И куда в таком случае лучше приписать свою?
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services "Group"" пока не пробовал. Опасаюсь, что имя этой группы имеет какое-то принципиальное значение для ОС. Если это не так, и можно спокойно задавать своё имя, то на каком уровне приоритета запускаются службы, относящиеся к первой группе? Real time или просто high? И куда в таком случае лучше приписать свою?
bat file: start /BELOWNORMAL pathTo\filename.exe
Цитата:
bat file: start /BELOWNORMAL pathTo\filename.exe
Ну этот способ то известен, но как то не верится, что задача решаемая примитивным батником не может быть решена более элегантно. Кроме того, есть куча сервисов, стартующих при загрузке и хотелось бы самому назначить чсти из них приоритеты, отличные от дефолтных. Вот я, например, хотел бы, чтобы сервис сервака Serv-U загружался с пониженны приоритетом, а Апрач, наоборот, с повышенным.
Вот ведь сколько существует твикеров, но ни в одном мне не попадались такие фичи. Почему бы??
Страницы: 1
Предыдущая тема: Windows NT4 инсталяция с винта
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.