Я пытаюсь изменить фон рабочего стола с помощью Powershell. Я пытался использовать следующий код, который работает только иногда.
Remove-ItemProperty -path "HKCU:\Control Panel\Desktop" -name WallPaper -Force
Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name Wallpaper -value $wallpaper -Force
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
Я пробовал ряд других вариантов этого кода, таких как добавление задержек с помощью Start-Sleep или с помощью Start-Job { RUNDLL32.EXE ...} затем Wait-Job.
Я предполагаю, что это странная попытка использовать RUNDLL32.exe. Я использую Windows 7 32-разрядную версию с Powershell V5.
Любопытное примечание: я запускаю один и тот же код в Powershell V6 на одном и том же компьютере, и код выполняется безошибочно каждый раз. Любая идея о том, почему это может быть и как я мог бы заставить его работать последовательно на Powershell V5?