https://www.clien.net/service/board/park/19040734CLIEN
이전에 윈도우11 24H2 에서 추천 배경/잠금 화면 이미지 컴퓨터에 저장하는 글을 올렸습니다.
얼마전부터 계속 추천이미지를 가져오지 못해 코파일/GPT 물어보았으나 안알려줘서 C: 드라이브 폴더를 찾아보니
%USERPROFILE%\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets 폴더에서
%USERPROFILE% \AppData\Local\Packages\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\LocalCache\Microsoft\IrisService
폴더에 랜덤으로 생성된 숫자 폴더에 저장되는 것을 확인했습니다.
코파일럿한테 지적하니까~ 코파일럿 답변 왈
" 좋아요, 아주 중요한 경로를 잘 찾아내셨습니다! 🎯
Windows 11 24H2에서는 **Windows 추천 이미지(Spotlight)**가 이전 버전과 달리 아래 경로에 저장되는 것으로 알려져 있습니다: "
라고 답변을 합니다. 이미 알고 있는데 모른척 했을까 생각해봅니다. ㅡ_ㅡ;;
위치를 알았으니 다시 코파일럿 귀찮게 해서 아래 코드를 만들었습니다.
===================================================================================
@echo off
setlocal
:: 임시 PowerShell 스크립트 경로 설정
set "psScript=%TEMP%\extract_spotlight.ps1"
:: PowerShell 스크립트 내용 작성
> "%psScript%" echo $irisPath = "$env:USERPROFILE\AppData\Local\Packages\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\LocalCache\Microsoft\IrisService"
>> "%psScript%" echo $destination = "Z:\Spotlight_24H2"
>> "%psScript%" echo if (!(Test-Path $destination)) { New-Item -ItemType Directory -Path $destination }
>> "%psScript%" echo Get-ChildItem -Path $irisPath -Directory ^| ForEach-Object {
>> "%psScript%" echo Get-ChildItem -Path $_.FullName -File ^| ForEach-Object {
>> "%psScript%" echo $newName = "$destination\$($_.Name).jpg"
>> "%psScript%" echo Copy-Item $_.FullName -Destination $newName
>> "%psScript%" echo }
>> "%psScript%" echo }
>> "%psScript%" echo Write-Host "The recommended images have been successfully saved to the Z drive ! : $destination"
:: PowerShell 스크립트 실행
powershell -ExecutionPolicy Bypass -File "%psScript%"
:: 임시 파일 삭제
del "%psScript%"
endlocal
pause
===================================================================================
CMD 파일을 만들고 관리자 권한으로 실행하시면 됩니다.
현재 윈도우 버전 24H2 (OS 빌드 26100.6584) 에서 동작하는것 확인했습니다.
참고하세요~
바탕화면에 CMD 파일 하나 만들어 두니 편합니다.
행복한 추석 연휴 보내세요. ㅎㅎ
Wallpaper만 저장이 되는것 같아서 Lockscreen까지 저장이 되도록 수정했습니다.
4번째 줄에서 경로만 수정하면 됩니다.
@echo off
setlocal
:: 저장 경로 설정
set "destination=C:\Windows 365 Wallpapers"
:: 임시 PowerShell 스크립트 경로 설정
set "psScript=%TEMP%\extract_spotlight.ps1"
:: PowerShell 스크립트 작성
> "%psScript%" echo $ErrorActionPreference = "Continue"
>> "%psScript%" echo $wallpaperPath = "$env:USERPROFILE\AppData\Local\Packages\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\LocalCache\Microsoft\IrisService"
>> "%psScript%" echo $lockscreenPath = "$env:USERPROFILE\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets"
>> "%psScript%" echo $destination = "%destination%"
:: 폴더 생성 (파이프 없음)
>> "%psScript%" echo if (!(Test-Path $destination)) { New-Item -ItemType Directory -Path $destination -Force }
:: 바탕화면 Spotlight 이미지 복사 (파이프는 ^| 로 이스케이프)
>> "%psScript%" echo Write-Host "Saving Wallpaper Spotlight images..."
>> "%psScript%" echo Get-ChildItem -Path $wallpaperPath -Recurse -File -ErrorAction SilentlyContinue ^| ForEach-Object {
>> "%psScript%" echo $newName = Join-Path $destination ("Wallpaper_$($_.Name).jpg")
>> "%psScript%" echo try {
>> "%psScript%" echo Copy-Item -Path $_.FullName -Destination $newName -Force -ErrorAction Stop
>> "%psScript%" echo Write-Host "Copied:" $newName
>> "%psScript%" echo } catch {
>> "%psScript%" echo Write-Warning "Failed to copy $($_.FullName) -> $newName : $($_.Exception.Message)"
>> "%psScript%" echo }
>> "%psScript%" echo }
:: 잠금화면 Spotlight 이미지 복사
>> "%psScript%" echo Write-Host "Saving Lock Screen Spotlight images..."
>> "%psScript%" echo Get-ChildItem -Path $lockscreenPath -File -ErrorAction SilentlyContinue ^| Where-Object { $_.Length -gt 200000 } ^| ForEach-Object {
>> "%psScript%" echo $newName = Join-Path $destination ("Lockscreen_$($_.Name).jpg")
>> "%psScript%" echo try {
>> "%psScript%" echo Copy-Item -Path $_.FullName -Destination $newName -Force -ErrorAction Stop
>> "%psScript%" echo Write-Host "Copied:" $newName
>> "%psScript%" echo } catch {
>> "%psScript%" echo Write-Warning "Failed to copy $($_.FullName) -> $newName : $($_.Exception.Message)"
>> "%psScript%" echo }
>> "%psScript%" echo }
>> "%psScript%" echo Write-Host "All Spotlight images have been saved to: $destination"
:: PowerShell 스크립트 실행
powershell -ExecutionPolicy Bypass -File "%psScript%"
:: 임시 파일 삭제
del "%psScript%"
endlocal
pause
사용해보겠습니다 (ㅁㅁ)//
- 사진 저장 경로를 %HOMEPATH%\Pictures\Windows Wallpapers 로 변경 (“사진” 폴더 아래에 “Windows Wallpapers” 폴더에 저장)
- 락 스크린 이미지 저장시 .jpg 확장자가 두번 붙는 것 수정 (바로 위 변경 사항)
- 이미 복사된 이미지가 있는 경우 skip 하기
----------
파일 생성 : extract_spotlight.ps1
```
$ErrorActionPreference = "Continue"
$wallpaperPath = "$env:USERPROFILE\AppData\Local\Packages\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\LocalCache\Microsoft\IrisService"
$lockscreenPath = "$env:USERPROFILE\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets"
$destination = "$env:HOMEPATH\Pictures\Windows Wallpapers"
if (!(Test-Path $destination)) { New-Item -ItemType Directory -Path $destination -Force }
Write-Host "Saving Wallpaper Spotlight images..."
Get-ChildItem -Path $wallpaperPath -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
# 파일명에 .jpg가 포함되어 있는지 확인
$baseName = $_.Name
if ($baseName -notlike "*.jpg") {
$baseName = "$baseName.jpg"
}
$newName = Join-Path $destination ("Wallpaper_$baseName")
if (-not (Test-Path $newName)) {
try {
Copy-Item -Path $_.FullName -Destination $newName -Force -ErrorAction Stop
Write-Host "Copied:" $newName
} catch {
Write-Warning "Failed to copy $($_.FullName) -> $newName : $($_.Exception.Message)"
}
} else {
Write-Host "Already exist:" $newName
}
}
Write-Host "Saving Lock Screen Spotlight images..."
Get-ChildItem -Path $lockscreenPath -File -ErrorAction SilentlyContinue | Where-Object { $_.Length -gt 200000 } | ForEach-Object {
# 파일명에 .jpg가 포함되어 있는지 확인
$baseName = $_.Name
if ($baseName -notlike "*.jpg") {
$baseName = "$baseName.jpg"
}
$newName = Join-Path $destination ("Lockscreen_$baseName")
if (-not (Test-Path $newName)) {
try {
Copy-Item -Path $_.FullName -Destination $newName -Force -ErrorAction Stop
Write-Host "Copied:" $newName
} catch {
Write-Warning "Failed to copy $($_.FullName) -> $newName : $($_.Exception.Message)"
}
} else {
Write-Host "Already exist:" $newName
}
}
Write-Host "All Spotlight images have been saved to: $destination"
```
다음과 같이 실행 (또는 bat 파일로 만들기
```
powershell -ExecutionPolicy Bypass -File extract_spotlight.ps1
```
감사합니다.