SSブログ

Windows 7でpslistが動作しない時は... [ソフトウェア/PC関係]

かなり久し振りにブログ記事を書いてみる。

だいぶ前にMicrosoftに買収されてしまった"Sysinternals"というサイトで配布されていた,PsToolsという便利なコマンドがある。コマンドラインで,Windowsのプロセスの情報を表示したりとか出来るツール群だ。買収後も細々とアップデートされていて,今でも充分使い物になる。ところが,この中の,pslistというコマンド(Linuxのpsのようなもの)が自宅のメイン・マシンのWindows 7で何故か動作しなかった。「0xC0000005」という,Windowsプログラマならそこそこお馴染みであろう,メモリ・アクセス違反の例外が発生してしまうのだ。pslistが使えないのはかなり不便なので,少し調べてはみたのだが解決策が見つからず,そのまま長いこと放置してあったのだが,ふと思い立って,もう一度調べてみようというのである。

もしかして,最新版では直っているかもということで,まずはサイトをチェックしてみると,割と最近(と言ってももう2年前)にv1.4というのが上がっていた。手元のものはv1.23なので,結構新しいみたい。早速ダウンロードして実行してみると,アクセス違反にこそならないが,やはりプロセスのリストは表示されない。その代わりに,何かメッセージが表示されている。

PsList v1.4 - Process information lister
Copyright (C) 2000-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Processor performance object not found on XXXXX
Try running Exctrlst from microsoft.com to repair the performance counters.

「Processor performance object」なるものが,システム上に見つからないと書いてある。で,ExctrlstとかいうコマンドをMicrosoftから手に入れて,実行してみろと。ところが,古い話なので,もはやExctrlstというコマンドが手に入らないっぽい。しかもググった結果の中に,あろうことか昔自分が書いたブログ記事が。約9年も前の記事。笑えることに,同じエラー・メッセージについて調べたものだ。ExctrlstのダウンロードURLも書いてあるのだが,既に無効になっている。はてさてどうしたものか。

そもそもExctrlstというコマンドが何をするものなのか,ということなのだが,この自分の記事によれば,システムの「PerfProc」とか「PerfOS」という設定が無効になっているのを,有効化させることが出来るらしい。で,もう少し調べてみたところ,MicrosoftのTechnetの記事で,"Two-Minute Drill: Disabled performance counters and Exctrlst.exe"というのを見つけた。あんまりちゃんと読んだ訳ではないのだが,どうやら,Windowsレジストリの

HKEY_LOCAL_MACHINES\SYSTEM\CurrentControlSet\services

の下に,PerfOSとかPerfProcという,前述の設定と同じ名前のキーがあって,その中で「Disable Performance Counters」の値が1にセットされていると,無効化されるということのようだ。有効化するには,この値を0にするか,その値名そのものを削除してしまえばよい。Exctrlstでやっていたのは,そういうことだったらしい。

しかし,私のメイン・マシンのレジストリを見ると,「PerfProc」にも「PerfOS」にも「Disable Performance Counters」という値は設定されていない。つまり,無効化されている訳ではないと言うことだ。それじゃどうすれば?

引き続き散々ググりまくって,たどり着いた情報がこちら。Exctrlstを実行してみてもダメだったけど,

lodctr /r

を実行したら直ったと書いてある。これまたよく分かってはいないが,何らかの原因で壊れてしまった「パフォーマンス・カウンタ」を再構築するためのコマンドらしい。早速試してみたのだが

C:\>lodctr /r

エラー: パフォーマンス カウンターの設定をシステムのバックアップ ストアから再構築
できませんでした。エラー コードは 5 です

とかいうメッセージが出てうまく行かない。しかし,ここでしばし考えて,管理者権限で起動したコマンド・プロンプトから実行してみたところ,あっさり成功。遂に,念願のpslistも無事動作するようになった! めでたしめでたし。

全ての環境で同じように解決出来るかは分からないが,ご参考までに。


nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。