適材適所

PowerShellやVBAなどプログラミング系の話多めで

【PowerShell】壁紙の元画像の保存場所を調べる【Get-CimInstance】

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

実行してみるとびっくりするくらい少ない情報しか出てきません。

f:id:shinmai_papa:20210829224805p:plain

全てのオブジェクトをさらけ出してもらいましょう。

 
Get-CimInstance -ClassName Win32_Desktop |Select-Object *

f:id:shinmai_papa:20210829224812p:plain

でてきました。

画面をスクロールすると・・・

f:id:shinmai_papa:20210829224818p:plain

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コマンドレットのワンライナー、壁紙のありかがわからなくなってしまった時などにお使いください。

ここまでお読みいただき、ありがとうございました。

参考とさせていただいたサイト

Windows 10 壁紙の場所は【ユーザー用・Windows 標準・元画像】に分類されている-パソブル