# Remove políticas que bloqueiam a personalização do papel de parede $regPaths = @( "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop", "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\System", "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop", "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" ) foreach ($path in $regPaths) { if (Test-Path $path) { Remove-Item $path -Recurse -Force -ErrorAction SilentlyContinue } } # Remove entradas relacionadas à GPOs antigas Remove-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects" -Recurse -Force -ErrorAction SilentlyContinue # Libera a chave PersonalizationCSP para reconfigurar corretamente Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" -Recurse -Force -ErrorAction SilentlyContinue # Caminho da nova imagem do papel de parede (ajuste conforme necessário) $wallpaperPath = "C:\Wallpaper\Wallpaper.jpg" # Redefine o papel de parede usando SystemParametersInfo Add-Type @" using System.Runtime.InteropServices; public class Wallpaper { [DllImport("user32.dll", SetLastError = true)] public static extern bool SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni); } "@ # SPI_SETDESKWALLPAPER = 20 ; SPIF_UPDATEINIFILE = 1 ; SPIF_SENDCHANGE = 2 [Wallpaper]::SystemParametersInfo(20, 0, $wallpaperPath, 1 -bor 2) # Força atualização do sistema RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters Set-ExecutionPolicy Unrestricted #PARTE 1 - Prepara o ambiente # Defina as URLs corrigidas dos arquivos no Blob Storage # https://raw.githubusercontent.com -> ESSE é padrão o Repositorio tem que estar publico; $ps1URL = "https://raw.githubusercontent.com/Sindilojas-SP/Wallpaper/main/Download_Wallpaper.ps1" $vbsURL = "https://raw.githubusercontent.com/Sindilojas-SP/Wallpaper/main/Invok-Download_Wallpaper.vbs" $image1URL = "https://raw.githubusercontent.com/Sindilojas-SP/Wallpaper/main/Wallpaper.jpg" $image2URL = "https://raw.githubusercontent.com/Sindilojas-SP/Wallpaper/main/LockScreen.jpg" #Comente essa linha se não tiver Padrão da tela de Bloqueio# # Defina os caminhos de destino para os arquivos $wallpaperFolder = "C:\Wallpaper" $ps1Destination = "$wallpaperFolder\Download_Wallpaper.ps1" $vbsDestination = "$wallpaperFolder\Invok-Download_Wallpaper.vbs" $image1Destination = "$wallpaperFolder\Wallpaper.jpg" $image2Destination = "$wallpaperFolder\LockScreen.jpg" #Comente essa linha se não tiver Padrão da tela de Bloqueio# # Verifique se a pasta C:\Wallpaper existe, caso contrário, crie-a e oculte-a if (-Not (Test-Path -Path $wallpaperFolder)) { New-Item -ItemType Directory -Path $wallpaperFolder attrib +h $wallpaperFolder # Define a pasta como oculta } # Faça o download do arquivo Download_Wallpaper.ps1 e salve-o no caminho C:\Wallpaper Invoke-WebRequest -Uri $ps1URL -OutFile $ps1Destination # Faça o download do arquivo Invok-Download_Wallpaper.vbs e salve-o na pasta de Startup Invoke-WebRequest -Uri $vbsURL -OutFile $vbsDestination # Faça o download da imagem de Plano de Fundo e salve-a no caminho C:\Wallpaper Invoke-WebRequest -Uri $image1URL -OutFile $image1Destination # Faça o download da imagem da Tela de Bloqueio e salve-a no caminho C:\Wallpaper Invoke-WebRequest -Uri $image2URL -OutFile $image2Destination #Comente essa linha se não tiver Padrão da tela de Bloqueio# #PARTE 2 - Preparando a chave PersonalizationCSP # Definir o caminho da chave de PersonalizationCSP no registro $registryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" # Verificar se a chave PersonalizationCSP existe. Se não, criar a chave. if (-not (Test-Path $registryPath)) { New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion" -Name "PersonalizationCSP" -Force } #PARTE 3 - APLICANDO DEFINIÇÕES DO PLANO DE FUNDO # Caminho da imagem para o plano de fundo (personalize conforme necessário) $wallpaperPath = "C:\Wallpaper\Wallpaper.jpg" # Definir o valor DesktopImagePath com o caminho do papel de parede New-ItemProperty -Path $registryPath -Name "DesktopImagePath" -Value $wallpaperPath -PropertyType "ExpandString" -Force # Definir o valor DesktopImageStyle como "4" (Preenchido - Fill) New-ItemProperty -Path $registryPath -Name "DesktopImageStyle" -Value 4 -PropertyType "DWord" -Force #PARTE 4- APLICANDO APLICANDO DEFINIÇÕES DA TELA DE BLOQUEIO - SE FOR USAR PADRÃO NA TELA DE BLOQUEIO COMENTE TODA PARTE 4. # Caminho da imagem para a tela de bloqueio (personalize conforme necessário) $lockScreenImagePath = "C:\Wallpaper\LockScreen.jpg" # Definir o valor LockScreenImagePath com o caminho da imagem para a tela de bloqueio New-ItemProperty -Path $registryPath -Name "LockScreenImagePath" -Value $lockScreenImagePath -PropertyType "ExpandString" -Force # Definir o valor LockScreenImageStatus como "1" (para habilitar a imagem personalizada da tela de bloqueio) New-ItemProperty -Path $registryPath -Name "LockScreenImageStatus" -Value 1 -PropertyType "DWord" -Force #PARTE 5 - BLOQUEIA QUE OS USUÁRIOS DE TROCAR O PLANO DE FUNDO # Defina o caminho do registro $regPath = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop" # Crie a chave ActiveDesktop se não existir if (-not (Test-Path $regPath)) { New-Item -Path $regPath -Force } # Defina o valor NoChangingWallPaper para 1 Set-ItemProperty -Path $regPath -Name "NoChangingWallPaper" -Value 1 -Type DWord # PARTE 6 - Ativa na inicialização # Caminho do arquivo .vbs $vbsFilePath = "C:\Wallpaper\Invok-Download_Wallpaper.vbs" # Caminho da chave de registro para inicialização do sistema $registryPath = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" # Nome do valor no registro para identificar o script $registryName = "DownloadWallpaper" # Adicionar entrada no registro para executar o .vbs na inicialização New-ItemProperty -Path $registryPath -Name $registryName -Value $vbsFilePath -PropertyType "String" -Force