個人情報を守るために検索履歴を削除するさまざまな方法

プライバシー保護のための、パソコンに残っている個人情報の残骸を削除する方法あれこれについて書きます。

時間が取れたときにでもボチボチと増補するかもしれません。

もくじ

[一段階上のメニューへ][このサイトのトップへ]

MSOfficeのHELP検索履歴を消すためのツール(2014/03/12)

マイクロソフトOfficeのヘルプで検索しますよね?

マイクロソフトOfficeのヘルプで検索の図1

そうすると、インターネットに繋がるんですよ。

で、それは良いとして、誤字などの恥ずかしい検索履歴も残ります。

これ、メニューから削除する方法は私の探した限りでは、見つかりませんでした。

そして、CCleanerでも、GrayUtilityでも、カスペルスキー2014の「便利ツール」に入っている「プライバシークリーナー」でも、削除されません。

マイクロソフトOfficeのヘルプで検索の図2

たとえば以下のような検索履歴があったとします。

マイクロソフトOfficeのヘルプで検索の図3

やっぱり残っています。これは恥ずかしい。

マイクロソフトOfficeのヘルプで検索の図4

どこに記録があるのかというと、レジストリに記録されます。

場所は

HKEY_USERS\( SID )\Software\Microsoft\Office\( 14.0 )\Common\HelpViewer\MRU Query\

なんですが、このSIDというのがまず問題で、ユーザ名と内部的な番号とが紐付けされているんですね。

でも、自分の内部的な番号なんて知らんがな。

電話口で「折り返し電話するから携帯電話の番号を言え」と言われても、一度切って確認しないと言えないのに。

レジストリエディタの画面1

SIDがわかったとしても、更に問題が…。

どっちのバージョンの方に情報が記録されているのだろう?

レジストリエディタの画面2

と、まぁ、なかなか大変なことがわかりました。

実はA,B,C,D,E,F,G,H,I,J,K,L,M,N,Oと15回、どうでも良いような検索を行えば、一番簡単に、検索履歴は全部上書きされます。

それはそうなんですが、頑張ってバッチファイルで解決。今回は、なかなかの力作です。

自己解凍書庫「ClearOfficeRecentSearches.exe」をデスクトップにダウンロードし、ダブルクリックで解凍します。

中から、(無意味に)exeファイル化された2つのファイルが出てきます。

ClearOfficeRecentSearches-x64.exeは64ビット版Windows用です。
ClearOfficeRecentSearches-x86.exeは32ビット版Windows用です。

ご自身のOSによって、どちらかをダブルクリックして実行します(なお、実行には管理者権限が必要です)。

あとは、メニューに従って進めば、恥ずかしい検索履歴は削除されます(たぶん)。

※ご利用は、自己責任にてお願いします。パソコン壊れても私は責任取りません。

ちなみに、コマンドプロンプトを管理者権限で開いてから、

ClearOfficeRecentSearches-x64.exe /?

ClearOfficeRecentSearches-x86.exe /?

などと、/?のオプションを指定すると、ソースコードのCMDファイルを解凍できます。

このとき、コマンドプロンプトを管理者権限で開いて実行しないと、「アクセスが拒否されました。」って叱られるかもしれません。

ソースコードは以下のような感じ。
※但し元のCodeにはFOR文中の^による改行Escapeは存在しない。

@ECHO OFF
TITLE 【Officeのヘルプ検索履歴を削除する】Ver1.0 2014/03/12 by www.tanimoto.to
:: ========================================================
:: Officeのヘルプ検索履歴を削除する
:: ========================================================
:: 今回の技術上のチャレンジ・ポイント
:: OfficeのバージョンをREG.EXEで確認する。
:: SID(Security Identifier; セキュリティ識別子)を取り出す。
:: EXEの標準出力をDOSのFOR文で配列に置換して必要な部分だけ抽出。
:: なくなってしまったCHOIS.EXEを環境変数SET /Pで代替。
:: 制御文 IF ~ELSE IF ~ ELSEの復習。
:: 環境変数の代入。
:: ========================================================
CLS
FOR /F "usebackq delims=. skip=1 tokens=3" %%A ^
IN (`REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Access.Application\CurVer\ /ve`) ^
DO SET AccessAppVer=%%A.0
FOR /F "usebackq delims=. skip=1 tokens=3" %%E ^
IN (`REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Application\CurVer\ /ve`) ^
DO SET ExcelAppVer=%%E.0
FOR /F "usebackq delims=. skip=1 tokens=3" %%P ^
IN (`REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.Application\CurVer\ /ve`) ^
DO SET PowerPointAppVer=%%P.0
FOR /F "usebackq delims=. skip=1 tokens=3" %%W ^
IN (`REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Application\CurVer\ /ve`) ^
DO SET WordAppVer=%%W.0
FOR /F "usebackq delims=. skip=1 tokens=3" %%O ^
IN (`REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Outlook.Application\CurVer\ /ve`) ^
DO SET OutlookAppVer=%%O.0
:: 先頭に@でも末尾に> NUL 2>&1でもエラー抑制できない。画面を消してごまかす。
CLS
ECHO あなたのSIDは以下の通りです。
FOR /F "usebackq skip=5 tokens=2" %%i IN (`WHOAMI /USER /FO LIST`) DO SET SID=%%i
ECHO セキュリティ識別子: %SID%
ECHO --------------------------------------------------------
ECHO このコンピュータのOfiice製品のバージョンは以下の通りです。
ECHO --------------------------------------------------------
ECHO Access--------→「%AccessAppVer%」
ECHO Excel---------→「%ExcelAppVer%」
ECHO PowerPoint----→「%PowerPointAppVer%」
ECHO Word----------→「%WordAppVer%」
ECHO Outlook-------→「%OutlookAppVer%」※OutlookExpressを除く。
ECHO ※インストールされていない物は「 」内が空白になります。
ECHO ちなみに、Windows用のバージョン番号の対応関係は以下の通りです。
ECHO ----+--------------------------------+------+----------
ECHO Ver. 製品名 発売 サポート終了(予定)
ECHO ----+--------------------------------+------+----------
ECHO 7.0 Office 95 1995年 2001年12月
ECHO 8.0 Office 97 1996年 2002年02月
ECHO 9.0 Office 2000 1999年 2009年07月
ECHO 10.0 Office XP 2001年 2011年07月
ECHO 11.0 Office 2003 2003年 2014年04月
ECHO 12.0 2007 Microsoft Office スイート 2007年 2017年04月
ECHO 13.0 N/A(デューク・東郷を恐れて欠番) - -
ECHO 14.0 Office 2010 2010年 2020年10月
ECHO 15.0 Office 2013 suites 2013年 2023年04月
ECHO ----+--------------------------------+------+----------
ECHO 最大の値を示したソフト名の「番号」を以下から選択して入力して下さい。
SET /P OfficeVer="Acccess【1】,Excel【2】,PowerPoint【3】,Outlook【4】,Word【5】^
 半角1文字を入力してENTER!→"
:: 「ELSE コマンドは、IF コマンドの終わりと同じ行で始まらなければならない」
:: というMSの IF /? に欺された。
IF "%OfficeVer%"=="1" ( SET OfficeVer=%AccessAppVer%
) ELSE IF "%OfficeVer%"=="2" ( SET OfficeVer=%ExcelAppVer%
) ELSE IF "%OfficeVer%"=="3" ( SET OfficeVer=%PowerPointAppVer%
) ELSE IF "%OfficeVer%"=="4" ( SET OfficeVer=%OutlookAppVer%
) ELSE IF "%OfficeVer%"=="5" ( SET OfficeVer=%WordAppVer%
) ELSE IF NOT "%OfficeVer%"=="" ( GOTO :PREEND
)
:: デバッグ用
:: ECHO %OfficeVer%
:: ECHO %AccessAppVer%
:: ECHO %ExcelAppVer%
:: ECHO %PowerPointAppVer%
:: ECHO %OutlookAppVer%
:: ECHO %WordAppVer%
:: PAUSE
:: ▽試行錯誤の痕跡 ------------------------------------------
:: 0で除算?
:: IF "%OfficeVer%" GEQ 6 (SET /A OfficeVer= ( "%OfficeVer%"/0 ) > NUL 2>&1
:: 数値に変換してから比較?
:: SET /A OfficeVerNUM = %OfficeVer%
:: IF %OfficeVerNUM% LEQ "6" GOTO :PREEND
:: △試行錯誤の痕跡 ------------------------------------------
:: 上のELSEは単なるENTERをキャッチ。
:: こっちは、それ以外の値やインストールされていない物の番号を受ける。
IF "%OfficeVer%"=="" ( ECHO そのバージョンはインストールされていません。
GOTO :PREEND
)
CLS
ECHO コンピュータに残っていたOfficeのHELP検索履歴は以下の通りです。
ECHO --------------------------------------------------------
FOR /F "usebackq skip=2 tokens=3" %%k ^
IN (`REG QUERY "HKEY_USERS\%SID%\Software\Microsoft\Office\%OfficeVer%\Common\HelpViewer\MRU Query"`) ^
DO @echo %%k
ECHO --------------------------------------------------------
SET /P YorN="上の検索履歴を削除する[y]/しない[n] 半角小文字で入力してENTER!→"
IF "%YorN%"=="n" ( GOTO :PREEND
) ELSE IF "%YorN%"=="y" ( GOTO :DELKEYWORDS
) ELSE ( GOTO :PREEND )
:DELKEYWORDS
REG DELETE "HKEY_USERS\%SID%\Software\Microsoft\Office\%WordAppVer%\Common\HelpViewer\MRU Query" /va /f
ECHO --------------------------------------------------------
ECHO 念のため、検索キーワードが残っていないかを以下で確認します。
ECHO 表示が何もなければ、検索履歴の削除は成功です。
ECHO ▼ここから----------------------------------------------
FOR /F "usebackq skip=2 tokens=3" %%k ^
IN (`REG QUERY "HKEY_USERS\%SID%\Software\Microsoft\Office\%WordAppVer%\Common\HelpViewer\MRU Query"`) ^
DO @echo %%k
ECHO ▲ここまで----------------------------------------------
ECHO 終了します。
PAUSE
GOTO END
:PREEND
ECHO 何も削除せずに終了します。
PAUSE
GOTO END
:END
EXIT

このファイルは、Fatih Kodakさん作のBat To Exe Converter Version 1.6.0.0(2011-12-16)でCMDをEXE化しました。

昔々、清水洋平(Paci)さん作のFreeWareにBATCPという名作ツールがありましてな。
これで、batファイルをcomファイルにコンパイルできたんですよ。
で、Windows用にはShareWareとして、WinBatchEh( for Win16と、for Win32)がありましてな…。

ドイツ人も同じようなこと好きなんですねぇ。

[このページの目次へ戻る]


[一段階上のメニューへ][このサイトのトップへ]

Copyright © 2014~ 谷本玲大
http://www.tanimoto.to/