PowerShellを使用してWindows Spotlightを壁紙のスライドショーとして使用する

ロック画面に時々表示される美しい画像は、Windows Spotlightに分類されます。これらの素晴らしい画像は、有名人、史実、その他のテーマの写真など、さまざまなソースから提供されています。これを見たことがない場合は、本当に美しく、デスクトップの壁紙や、(WhatsApp)などの特定のアプリの背景画像、または他のデバイスのホーム画面の背景画像として最適であることをお伝えします。残念ながら、これらはオペレーティングシステム内のシステムファイルの奥深くのどこかに保存されているため、通常のユーザーはそれらにアクセスしたり、それらを適切に読み取ったりすることはできません。そのため、これらの画像を別のフォルダーに移動するためのソリューションが必要です。

設定からデスクトップにWindows Spotlightの背景を表示できますが、この投稿では、PowerShellを使用してWindows Spotlightをデスクトップ壁紙のスライドショーとして使用する方法を示します。

これらの画像に手動でアクセスしたい場合は、[実行]ボックスを使用して次のパスに従います。

%LocalAppData%\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets

ただし、画像ファイルであるにもかかわらず、そのフォルダーに保存されている各ファイルには拡張子がありません。そのため、サフィックス部分に拡張子を付けて、そのファイルに探している画像が含まれているかどうかを確認する必要があります。しかし、これは少し面倒なプロセスですよね。コンピューターで探しているものは常に高速である必要があります。

PowerShellを使用してWindows Spotlightをデスクトップ壁紙のスライドショーとして使用する

最初に記事全体を読むことをお勧めします。

まず、このPowershellスクリプトファイルをダウンロードする必要があります。このファイルを永続的な場所に保存したら、移動しないようにすることをお勧めします。これは、壁紙をファイルとして移行する必要があるたびに、このファイルを実行する必要があるためです。

$files = gci $Env:LocalAppData\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets | where Length -gt 1kb
if ($files) {
    $shell = New-Object -ComObject Shell.Application
    $folder = "$Env:USERPROFILE\OneDrive\Pictures\Wallpaper\Spotlight\"
 
    if (!(Test-Path $folder)) { mkdir $folder }
    $files | % {
        $_ | Copy-Item -Destination $folder\$_.jpg
        Get-Item $folder\$_.jpg
    } | % {
        $namespace = $shell.namespace($folder)
        $item = $namespace.ParseName($_.Name)
        $size = $namespace.GetDetailsOf($item, 31)
        if ($size -match '(\d+) x (\d+)') {
            $width = [int]($Matches[1])
            $height = [int]($Matches[2])
        }
        if (!$size -or $width -lt 1920 -or $height -lt 500) {
            Remove-Item $_
        }
    }
}
これで、このスクリプトが呼び出されるたびに、上記の場所に保存されているスポットライト画像が目的の場所にコピーされ、拡張子がサフィックスとして追加されます。

既定では、宛先はOneDriveフォルダー内の「Pictures\Wallpaper\Spotlight\」に設定されていることに注意してください。

この場所を変更するには、スクリプトの6行目で希望の場所を設定します。メモ帳またはVisual Studio Codeなどの同様の編集ツールを使用してスクリプトを編集できます。

これで、このスクリプトを実行すると、壁紙が取得され、設定された宛先フォルダーに保存されます。しかし、自動化の部分が残されています。

このスクリプトの実行を自動化する

これには、基本タスクウィザードでタスクをスケジュールするためにタスクスケジューラを使用することをお勧めします。

まず、このファイルをダウンロードします。

次に、Cortana検索ボックスからタスクスケジューラを見つけて開きます。

タスクスケジューラが開いたら、タスクのインポートをクリックし、ダウンロードしたばかりのXMLファイルを選択します。

次に、タスクの作成に役立つフィールドを含むウィンドウがポップアップ表示されます。

トリガーというラベルのタブに移動し、このスクリプトを実行する時間と期間を設定します。最後に、OKをクリックします。

次に、アクションというラベルのタブに移動し、最初で唯一のエントリを選択して編集をクリックします。

表示されるアクションの編集ウィンドウで、プログラム/スクリプトのフィールドの下にある参照をクリックし、以前に保存したPowershellスクリプトファイルを選択して、最後にOKをクリックし、もう一度OKをクリックします。

最後に、タスクスケジューラを閉じます。

これで、タスクスケジューラのXMLファイルを削除できます。

最後に、これらの画像をデスクトップの背景のスライドショーとして設定するには、まず設定を開きます。

次に、個人設定をクリックします。

背景というドロップダウンで、スライドショーを選択します。

次に、参照というボタンをクリックします。

最後に、すべての画像が宛先として保存されているフォルダーを選択します。

この方法はもともとcmdrkeene.comに投稿されました。

関連情報: Windows Spotlight Tool、JpegSync、Windows Spotlight Extractor、またはLock Screen Reflectionを使用すると、Spotlightロック画面の画像を保存して壁紙として使用できます。