質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

解決済

1回答

2984閲覧

Windows 10 CPU使用率の上限をVBScriptで変更したい

DreamTheater

総合スコア1095

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2020/03/16 00:20

編集2020/03/16 02:49

経緯

『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%となったのはたまたまでしょうか?

先ほどは要領の得ない質問で、コメント頂いた方にご迷惑をお掛けしました。

お力添えの程よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/03/16 00:43

ファンは CPU 使用率ではなく温度をトリガーに動いていると思います。物理的に冷やしたらいいんじゃないでしょうか。逆に言えば、使用率を抑えても条件によってファンが動くでしょう。
DreamTheater

2020/03/16 00:54

Zuishinさま コメントありがとうございます。 ごもっともなのですが、冷却装置の購入については予算上の問題があり難しい状況です。 現在少なくともフルスキャン実行によるCPU使用率100%の状態で確実に全PCでファン音が 鳴り響いており、上限変更で一応効果が見込めることから、少しでも状況を改善したい次第です。
Zuishin

2020/03/16 01:01

質問の主旨がよくわかりません。試作コードでうまくいくならそれをスケジューラーに登録すればいいんじゃないでしょうか。必ずファンを止められるわけではない理由は、すべての PC が同じ状態ではないからです。夏になればもっと厳しくなるでしょう。
DreamTheater

2020/03/16 01:04

上限を80%設定しているにも関わらず、使用率100%まで上昇してしまう点を問題点としているのですが
Zuishin

2020/03/16 01:05

上限は絶対ではありませんから。
ttyp03

2020/03/16 01:32

コンパネの設定は80%に変更できているのでしょうか?できていないのならスクリプトの問題でしょうし、できているのにCPU使用率が80%を超えてしまうのはスクリプト云々の話ではないですし。まずは切り分けからでは。
DreamTheater

2020/03/16 01:36

ttyp03さま コンパネの設定は80%に変更できています。
guest

回答1

0

自己解決

自己解決しました。

VBScript

1 '==CPU使用率の最大を80%に下げる(ファン音対策) 2 cmdString = "powercfg /SETACVALUEINDEX SCHEME_BALANCED SUB_PROCESSOR PROCTHROTTLEMAX 80" 3 result = shellObj.Run(cmdString, 0, True) 4 cmdString = "powercfg /SETACTIVE SCHEME_BALANCED" '追加 5 result = shellObj.Run(cmdString, 0, True) '追加 6

powercfg /SETACVALUEINDEX SCHEME_BALANCED SUB_PROCESSOR PROCTHROTTLEMAX 80 
実行直後に
powercfg /SETACTIVE SCHEME_BALANCED
を実行することによって、CPU使用率上限が80%に制限できることが確認できました。

SCHEME_BALANCED が当方PCの規定値だったので、/SETACTIVEは不要と思い込んでいました。

投稿2020/03/16 07:44

DreamTheater

総合スコア1095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問