Alterar prioridade de serviço do Windows

2

Eu tenho um serviço do Windows que precisa ser executado com alta prioridade.
No final do dia, quero usar esse 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 consigo alterar a prioridade, mesmo com o gerenciador de tarefas. O taskmananger lança um erro "Acesso negado", mas eu estou logado como administrador e mudei a conta de usuário do serviço para administrador também.

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

    
por Jürgen Steinblock 08.09.2010 / 14:36

3 respostas

5

Eu encontrei uma maneira de fazer isso neste blog: link

Se eu executar este comando

ntsd -c qd taskmgr.exe

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

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

e agora a prioridade do processo é 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 (essa sou eu;), recebi a mensagem "acesso negado". Mas com esse truque que funciona como um encanto.

    
por 04.10.2010 / 08:26
1

Pode ser necessário adicionar o seguinte ao topo 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 = em tempo real)

Lista completa aqui: link

    
por 08.09.2010 / 14:45
1

link

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

Ocioso: 64 Abaixo do normal: 16384 Normal: 32 Acima do normal: 32768 Alta prioridade: 128 Tempo Real: 256

    
por 16.10.2012 / 17:49