Jür*_*ock 2 windows-server-2003 windows-service process-priority wmi
我有一个需要以高优先级运行的 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
Run Code Online (Sandbox Code Playgroud)
但是目前我无法更改优先级,即使使用任务管理器也是如此。taskmananger 抛出“拒绝访问”错误,但我以管理员身份登录,我也将服务的用户帐户更改为管理员。
尝试更改优先级时,我仍然收到“访问被拒绝”消息。任何想法我需要什么许可?
我在这个博客中找到了一种方法:http : //akshayjain.org/blog/2008/08/hack-unable-to-change-priority-in-task-manager/
如果我运行这个命令
ntsd -c qd taskmgr.exe
Run Code Online (Sandbox Code Playgroud)
任务管理器以系统权限启动,我可以更改进程优先级。这意味着我的 wsh 脚本也可以做到这一点。我创建了一个批处理文件
@ECHO OFF
ntsd -c qd cscript.exe set_service_priority.vbs
Run Code Online (Sandbox Code Playgroud)
现在进程优先级得到了修改,就像我想要的那样。
最初我无法更改进程优先级,因为该服务在系统帐户下运行。奇怪的是,即使在将服务用户更改为administrator
(即我 ;)之后,我还是收到了“访问被拒绝”消息。但是这个技巧就像一个魅力。
归档时间: |
|
查看次数: |
18285 次 |
最近记录: |