【发布时间】:2014-01-08 16:34:11
【问题描述】:
我正在尝试通过我们的组策略部署一个脚本,该脚本将在后台运行并监视名为“3dsmax.exe”的进程。每次启动此过程时,我都想确保它的优先级设置为“低”。
我对 Powershell 的理解极其有限。 我尝试使用不同的论坛组合以下内容,但这似乎不起作用,我相信这将在第一次出现后终止,这是不可取的。我使用“calc.exe”作为测试进程。
#requires -version 2.0
Register-WmiEvent -Class win32_ProcessStartTrace -SourceIdentifier processStarted
$prog = 'calc.exe'
$newEvent = Wait-Event -SourceIdentifier processStarted
If ($progs -match $newEvent.SourceEventArgs.NewEvent.ProcessName)
{
$prog = Get-Process -Name calc
$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::Low
}
任何帮助都会很棒:)
【问题讨论】:
-
添加一个片段以确定 processID (PID),这样您就可以确保只影响正确的实例。或者,循环遍历“calc.exe”的所有实例,并且仅在 processpriority 尚未为低时重新启动。
-
我的get-process命令也只能在没有.exe的情况下工作
$prog = Get-Process -Name calc -
这些机器运行的是什么操作系统版本?
-
客户端运行 Windows 7 Professional x64
-
我编辑了我的代码以添加 $prog = 'calc.exe' 以便 If 语句实际上与 'calc.exe' 进行比较。我相信在一个给定的时间可能只有一个该过程的实例运行(据我所知)。但是,它可以在一天内运行多次,这就是我希望脚本在后台连续运行的原因。话虽如此,它不起作用,需要做更多阅读:)
标签: powershell powershell-2.0 powershell-1.0