Alterar a prioridade de serviço do Windows

Alterar a prioridade de serviço do Windows

Eu tenho um serviço do Windows que precisa ser executado com alta prioridade.
No final das contas, quero usar este script para modificar a prioridade após a inicialização do serviço:

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

Mas atualmente não estou conseguindo alterar a prioridade, nem mesmo com o gerenciador de tarefas. O taskmananger gera um erro "Acesso negado", mas estou conectado como administrador e também alterei a conta de usuário do serviço para administrador.

Ainda recebo a mensagem "acesso negado" ao tentar alterar a prioridade. Alguma idéia de qual permissão eu preciso para fazer isso?

Responder1

Encontrei uma maneira de fazer isso neste blog:http://akshayjain.org/blog/2008/08/hack-unable-to-change-priority-in-task-manager/

Se eu executar este comando

ntsd -c qd taskmgr.exe

o gerenciador de tarefas inicia com privilégios de sistema e posso alterar a prioridade do processo. Isso significa que meu script wsh também pode fazer isso. Eu criei um arquivo em lote

@ECHO OFF
ntsd -c qd cscript.exe set_service_priority.vbs

e agora a prioridade do processo foi modificada, como eu queria.

Inicialmente não consegui alterar a prioridade do processo porque o serviço era executado na conta do sistema. O estranho é que, mesmo depois de mudar o usuário do serviço para administrator(sou eu;) recebi a mensagem "acesso negado". Mas com esse truque que funciona perfeitamente.

Responder2

Talvez seja necessário adicionar o seguinte ao início do seu script:

Set objLoc = createobject("wbemscripting.swbemlocator")
objLoc.Security_.privileges.addasstring "sedebugprivilege", true 

Embora .. eu não gostaria de usar nada acima de 128 .. (256 = Tempo Real)

Lista completa aqui:http://msdn.microsoft.com/en-us/library/aa393587.aspx

Responder3

http://setiathome.berkeley.edu/forum_thread.php?id=69381

processo wmic onde name = "notepad.exe" CALL setpriority 32768

Inativo: 64 Abaixo do Normal: 16384 Normal: 32 Acima do Normal: 32768 Alta Prioridade: 128 Tempo Real: 256

informação relacionada