Script para alterar o papel de parede no Windows 10 não está funcionando

0

Estou tentando fazer com que um script funcione e mude o papel de parede padrão do Windows 10, pois implantarei o Win10 em todos os clientes. Quando executo o código de lote abaixo, não está alterando o papel de parede padrão. Vejo que o arquivo img0 está no diretório correto C: \ Windows \ Web \ Wallpaper \ Windows, mas não está alterando o plano de fundo. O código abaixo é o que estou usando. Eu recebo alguns erros de acesso negado ao tentar excluir C: \ Windows \ Web \ 4K \ Wallpaper \ Windows \ img0_1366x768.jpg Acesso negado.

takeown /f c:\windows\WEB\wallpaper\Windows\img0.jpg
takeown /f C:\Windows\WebK\Wallpaper\Windows\*.*
icacls c:\windows\WEB\wallpaper\Windows\img0.jpg /Grant System:(F)
icacls C:\Windows\WebK\Wallpaper\Windows\*.* /Grant System:(F)
del c:\windows\WEB\wallpaper\Windows\img0.jpg
del /q C:\Windows\WebK\Wallpaper\Windows\*.*
copy %~dp0img0.jpg c:\windows\WEB\wallpaper\Windows\img0.jpg
copy %~dp04k\*.* C:\Windows\WebK\Wallpaper\Windows

Alguma idéia do que estou fazendo errado? TIA

C:\Users\Administrator\Desktop\ReplaceWallpaper>(
Takeown.exe /F "C:\WINDOWS\Web\" /R /D S
 Icacls.exe "C:\WINDOWS\Web\" /Grant "Administrator":"F" /T
 Del /Q "C:\WINDOWS\Web\wallpaper\Windows\img0.jpg"


    Copy "C:\Users\Administrator\Desktop\ReplaceWallpaper\img0.jpg" "C:\WINDOWS\Web\wallpaper\Windows\img0.jpg"
     REG ADD "HKCU\Control Panel\Desktop" /V "Wallpaper" /T "REG_SZ" /D "C:\WINDOWS\Web\wallpaper\Windows\img0.jpg" /F
    ) 1>Nul
    ERROR: File or Directory not found.
    C:\WINDOWS\Web" /Grant Administrator:F /T: The filename, directory name, or volume label syntax is incorrect.
    
por Jon 05.11.2015 / 19:16

3 respostas

2

O nome de usuário que você definiu no comando Icacls está errado, você deve estar executando como Admin, preferivelmente usando o oculto conta interna de administrador se você tiver acesso de usuário negado e usar seu nome de usuário. / p>

Em segundo lugar, certifique-se de definir o valor do registro Wallpaper do usuário atual, na chave de registro HKEY_CURRENT_USER\Control Panel\Desktop , que aponta para o papel de parede atual.

Observe que um logoff / restart é necessário em um idioma limitado, como o Batch, que não pode notificar sobre uma atualização do ambiente do sistema.

Tente isto:

Set "oldWall=%WinDir%\Web\wallpaper\Windows\img0.jpg"
Set "newWall=%~dp0img0.jpg"
Set "WallPath=%WinDir%\Web\Windows\"

(
Takeown.exe /F "%WallPath%" /R /D S
Icacls.exe "%WallPath%" /Grant "%username%":"F" /T
Del /Q "%oldWall%"
Copy "%newWall%" "%oldWall%"
REG ADD "HKCU\Control Panel\Desktop" /V "Wallpaper" /T "REG_SZ" /D "%oldWall%" /F
)1>Nul

Mas se sua finalidade é implantar um ISO do Windows com um conjunto de papéis de parede personalizado, a solução preferida é usar o WSIM ( Gerenciador de Imagem de Sistema do Windows ), que está incluído no WAIK ( Kit de Instalação Automatizada do Windows ) ou também conhecido como WADK ( Kit de Avaliação e Implantação do Windows ), assim você pode gerar um arquivo AutoUnattend.xml que deve ser enviado dentro do ISO junto com o arquivo setup.exe, Dessa forma, você pode modificar vários valores padrão ao instalar o Windows, como o papel de parede padrão para todos os usuários.

    
por 05.11.2015 / 19:33
0

Abaixo estão as correções para o que você forneceu acima, juntamente com algumas recomendações. Na solução inferior para atualizar o papel de parede sem reiniciar.

Erro produzido: "ERRO: arquivo ou diretório não encontrado". Erro ao produzir o código: Takeown.exe / F "C: \ WINDOWS \ Web \" / R / D S Correção: Takeown.exe / F "C: \ WINDOWS \ Web" / R / D Y

Explicação: / D deve ser seguido de Y para sim ou N para Não.             Takeown tem um bug e, portanto, nenhuma barra invertida é permitida, a menos que seja seguida por um token FileSpec / Wildcard *

Erro Não Produzindo Erro: O Administrador deve ser Administrador ao adicionar Permissões com ICacls, a menos que você tenha criado um nome de usuário com a string 'Administrador', mas siga o que ElektroStudios declarou acima e use o usuário atual.

Entretanto, permitir as permissões atuais do usuário para os arquivos do sistema não é uma boa ideia porque você está alterando a segurança do seu sistema. Portanto, sua ideia inicial de permitir as permissões do grupo de administradores para esses arquivos é boa.

Erro de estilo de script: Você não deve excluir os arquivos de papel de parede porque você mal consegue fazer esse script funcionar. Até então você deve apenas tentar realizar tarefas através do seu script sem arruinar os arquivos no sistema operacional. Este é apenas um bom hábito quando se trata de scripts, para que você não estrague o seu computador ou altere seu estado de segurança. Ao mudar os papéis de parede, você pode deixar um vírus entrar no seu computador, dependendo de onde você tira seus papéis de parede.

Aqui está como fazer o script funcionar. Retirado de Rob Vanderwoude Script SetWallp.bat, que credita Pete Smith para o comando RUNDLL32 para ativar as alterações. link

Ativar alterações RUNDLL32.EXE USER32.DLL, UpdatePerUserSystemParameters 1 Verdadeiro

    
por 12.11.2015 / 01:20
0

No momento em que escrevo (na minha experiência), configurar HKCU\Control Panel\Desktop com mais frequência não funcionaria.

A melhor solução é chamar a função win32 api SystemParametersInfoSetWallpaper - funciona sempre. Eu descobri que este módulo / snippet do PowerShell é bastante útil link

    
por 09.10.2017 / 11:52