Shikata Ga Nai

Private? There is no such things.

システムインデックスデータベースを検索してみた

Hello there, ('ω')ノ


OSにはファイル名を検索できるインデックス作成ソリューションがあって。

デフォルトだとファイルのコンテンツにインデックスを付けるものもあって。 

 

Windows Searchの構成を調べるには。

Windowsの検索バーに『インデックス』と入力して構成設定を開いて。

 

f:id:ThisIsOne:20200604193913p:plain

 

『詳細設定』をクリックすると。

インデックスが作成されているファイルの場所とファイルの種類を確認できて。

 

f:id:ThisIsOne:20200604165234p:plain

 

効率的な方法としては、Windows Searchデータベースに直接接続することで。


f:id:ThisIsOne:20200604194751p:plain

 

以下は、インデックスをクエリするPowerShell関数で。

 

echo "Script Start!!"

$SearchString = "password"
$query = "select system.itemname, system.itempathdisplay from systemindex where contains('$SearchString')"
$provider = "Provider=Search.CollatorDSO.1;Extended?       PROPERTIES='Application=Windows'"
$adapter = new-object System.Data.OleDb.OleDBDataAdapter -Argument $query, $provider
$results = new-object System.Data.DataSet
$adapter.Fill($results)
$results.Tables[0]

echo "Script End!!"

 

f:id:ThisIsOne:20200604195014p:plain

 

『管理者として実行』でPowerShellセッションを起動して。

 

f:id:ThisIsOne:20200604195309p:plain

 

実行すると。

『password』の文字が含まれているファイルが列挙されて。

 

f:id:ThisIsOne:20200604195203p:plain

 

その中の一つのファイルを開いてみると『password』の文字がヒットして。

 

f:id:ThisIsOne:20200604193705p:plain

 

Best regards, (^^ゞ