PCの壁紙って、その人のこだわりみたいなものが垣間見られて、デフォルトではない壁紙を設定してあるのを見ると、その人の印象がちょっと変わったりしますよね。
こだわらない人は、まったくこだわらないですが、こだわる人はこだわる。
そんなPCの壁紙の元ファイルの保存先をPowerShellを使って調べる方法を紹介したいと思います。
Get-CimInstanceコマンドレットを使う
Get-CimInstanceコマンドレットは、 Windows Management Instrumentation (WMI)というWindowsの中でもとても重要な機能の一つです。
このWMIはPowerShellからアクセスすることができ、その時に使うコマンドレットの一つがGet-CimInstanceコマンドレットです。
Get-CimInstanceコマンドレットを使うことで、WMIを介して、Windowsの様々な機能にアクセスすることができるようになります。
デスクトップの情報を取得する
次のようにすることでデスクトップの情報を得ることができます。
Get-CimInstance -ClassName Win32_Desktop
実行してみるとびっくりするくらい少ない情報しか出てきません。
全てのオブジェクトをさらけ出してもらいましょう。
Get-CimInstance -ClassName Win32_Desktop |Select-Object *
でてきました。
画面をスクロールすると・・・
Wallpaperプロパティがありました。
これが壁紙の元画像のありかになります。
結論
ということで、PowerShellでPCの壁紙の元画像の保存場所を調べるワンライナーは次の通りです。
(Get-CimInstance -ClassName Win32_Desktop).Wallpaper
注意点として、このコマンドで返されるファイルのパスはあくまで壁紙設定時のパスになります。
壁紙設定後にファイルが削除されたり、別の場所に移動していても、このパスは変わりません。
ちなみに、この値はレジストリに格納されています。
また現在の壁紙の元画像ではなく、現に設定されている画像のパスは「C:¥Users¥ユーザー名¥AppData¥Roaming¥Microsoft¥Windows¥Themes¥TranscodedWallpaper」になります。
TranscodedWallpaperをコピペしてjpgなどの拡張子を付けることで中身を確認することができます。
終わりに
PowerShellでGet-CimInstanceを駆使して壁紙の元画像の保存場所を調べる方法を紹介しました。
Get-CimInstanceコマンドレットを使わないと、regeditなどでレジストリまで行かなくてはいけないので、ちょっと大変です。
その点、Get-CimInstanceコマンドレットは、このように普通ではアクセスが面倒な情報にも比較的簡単にアクセスすることができます。
他のWMIオブジェクトも調べてみると面白いですよ。
・・・話が少しそれてしまいましたが、Get-CimInstanceコマンドレットのワンライナー、壁紙のありかがわからなくなってしまった時などにお使いください。
ここまでお読みいただき、ありがとうございました。