有没有办法将 Windows 服务进程(例如 squidNT、SQL Server 等)配置为以低优先级自动启动,而无需通过任务管理器手动更改进程优先级?
Eva*_*son 12
处理启动/停止服务的服务控制管理器没有任何机制(在迄今为止的任何版本的 Windows 中)来指定它启动的进程的优先级。
由于您可以修改已经运行的进程的优先级,因此最好的办法可能是使用工具来做到这一点。
我不知道 Microsoft 命令行工具可以修改进程优先级,但是http://www.teamcti.com/pview/prcview.htm上的“PV”命令行也有设置优先级的功能.
pv -pb process-name.exe
Run Code Online (Sandbox Code Playgroud)
这会将“process-name.exe”设置为“Below Normal”优先级。
如果您可以忍受以“正常”优先级开始的流程,直到您开始更改它,那么您可以使用作为“计划任务”运行的脚本来做到这一点,以经常触发(以防服务反弹)。
这是一个快速而肮脏的黑客,但我一生中的很多财富都归功于完成工作的快速而肮脏的黑客!
以上答案对我不起作用。我结束了创建以下 powershell 脚本:
更改优先级.ps1
Get-WmiObject Win32_process -Filter 'name="ProcessName.exe"' | ForEach-Object {$_.SetPriority(128)}
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个计划任务,每 5 分钟调用一次。从管理员提示符或批处理脚本:
schtasks /Create /tn "Process Priority Change" /sc MINUTE /mo 5 /ru SYSTEM /tr "powershell -noprofile -executionpolicy bypass -file \"%cd%\ChangePriority.ps1\""
Run Code Online (Sandbox Code Playgroud)
尝试按照此处wmic讨论的方式使用以使计划任务不依赖于文件失败。与使用 powershell 脚本类似:我无法创建一个仅使用内联脚本创建任务的命令。如果您设法做到这一点并添加另一个答案,我们将不胜感激。
powershell 脚本中的优先级值可以在此处找到[1]。
| 归档时间: |
|
| 查看次数: |
26805 次 |
| 最近记录: |