経緯
『Windows 10 フルスキャン実行中CPU使用率の上限をVBScriptで変更したい』で質問させて頂きましたが、
要点が的確でなかったようですので質問を変更します。
やりたいこと
VBScriptで以下を実現させたいです。
0. CPU使用率の上限を80%に制限する。
0. McAfeeフルスキャンを起動する。
0. フルスキャンの実行を待ち合わせる。
0. CPU使用率上限を100%に戻す。
1と4それぞれをpowercfgコマンドをVBScriptから実行しているのですが、1が期待通りの結果となりません。
CPU使用率の上限を80%に制限するVBScript
VBScript
1Dim cmdString 2Dim shellObj 3 4Set shellObj = CreateObject("WScript.Shell") 'シェルオブジェクトを生成する 5 6'==CPU使用率の最大を80%に下げる(ファン音対策) 7cmdString = "powercfg /SETACVALUEINDEX SCHEME_BALANCED SUB_PROCESSOR PROCTHROTTLEMAX 80" 8shellObj.Run(cmdString, 0, True) 9'McAfeeフルスキャンを実行 10 11'McAfeeフルスキャン完了を待ち合わせる。
2のMcAfeeフルスキャンが開始した頃合いでコンパネの電源設定で「最大のプロセッサの状態」は80%に
変更されているのですが、CPU使用率は80%を超えほぼ100%となりました。
試行(Sleepの挿入)
(根拠はないのですが)、CPU使用率の最大を80%に設定した直後に30秒Sleepを入れて再実行。
VBScript
1Dim cmdString 2Dim shellObj 3 4Set shellObj = CreateObject("WScript.Shell") 'シェルオブジェクトを生成する 5 6'==CPU使用率の最大を80%に下げる 7cmdString = "powercfg /SETACVALUEINDEX SCHEME_BALANCED SUB_PROCESSOR PROCTHROTTLEMAX 80" 8shellObj.Run(cmdString, 0, True) 9 10'30秒待ち合わせ 11Wscript.Sleep 30000 12 13'McAfeeフルスキャンを実行 14 15'McAfeeフルスキャン完了を待ち合わせる。
コンパネの「最大のプロセッサの状態」は80%に変更され、CPU使用率も80%上限で推移し、うまくいったと
思われたのですが、別のPCで実行すると4台中2台でCPU使用率が100%まで上昇してしまいます。
使用率100%のPCにおいてもコンパネの「最大のプロセッサの状態」は80%と表示されています。
※本スクリプト実行直前までCPU使用率は10%未満でした。
確認事項
- powercfgコマンドでCPU上限を80%設定できたとしても、上限超えは起きうるものなのでしょうか?
- Sleep挿入によって一部PCで上限80%となったのはたまたまでしょうか?
先ほどは要領の得ない質問で、コメント頂いた方にご迷惑をお掛けしました。
お力添えの程よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー