
У меня есть служба Windows, которая должна работать с высоким приоритетом.
В конце дня я хочу использовать этот скрипт для изменения приоритета после запуска службы:
Const HIGH = 256
strComputer = "."
strProcess = "BntCapi2.exe"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = '" & strProcess & "'")
For Each objProcess in colProcesses
objProcess.SetPriority(HIGH)
Next
Но в настоящее время я не могу изменить приоритет, даже с помощью taskmananger. taskmananger выдает ошибку "Access Denied", но я вошел в систему как администратор и изменил учетную запись пользователя службы на администратора.
Я все еще получаю сообщение "доступ запрещен" при попытке изменить приоритет. Есть идеи, какое разрешение мне нужно, чтобы сделать это?
решение1
Я нашел способ сделать это в этом блоге:http://akshayjain.org/blog/2008/08/hack-unable-to-change-priority-in-task-manager/
Если я выполню эту команду
ntsd -c qd taskmgr.exe
диспетчер задач запускается с системными привилегиями, и я могу изменить приоритет процесса. Это означает, что мой скрипт wsh тоже может это сделать. Я создал пакетный файл
@ECHO OFF
ntsd -c qd cscript.exe set_service_priority.vbs
и теперь приоритет процесса изменен, как я и хотел.
Изначально я не мог изменить приоритет процесса, потому что служба работала под системной учетной записью. Странно, что даже после смены пользователя службы на administrator
(это я ;) я получал сообщение "доступ запрещен". Но с этим трюком это работает как по волшебству.
решение2
Возможно, вам придется добавить следующее в начало вашего скрипта:
Set objLoc = createobject("wbemscripting.swbemlocator")
objLoc.Security_.privileges.addasstring "sedebugprivilege", true
Хотя... Я бы не хотел использовать ничего выше 128... (256 = Realtime)
Полный список здесь:http://msdn.microsoft.com/en-us/library/aa393587.aspx
решение3
http://setiathome.berkeley.edu/forum_thread.php?id=69381
процесс wmic, где name="notepad.exe" CALL setpriority 32768
Бездействие: 64 Ниже нормы: 16384 Норма: 32 Выше нормы: 32768 Высокий приоритет: 128 Реальное время: 256