ParSec篡改Windows桌面背景(壁纸,Wallpaper)的解决办法

2024-08-22 20:23:48 浏览数 (1)

有些软件比如ParSec可能篡改桌面背景,改了后无法在个性化里修改,按钮灰的,点不了,如下图

经过研究发现ParSec安装过程中会篡改桌面背景(壁纸,Wallpaper)相关注册表

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerWallpapers

CurrentWallpaperPath

HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem

Wallpaper

WallpaperStyle

解决办法:配置组策略,禁用“阻止更改桌面背景”,删除HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem下面的Wallpaper,然后重启explorer进程,然后桌面右键→ 个性化→ 重新设置壁纸即可。

代码语言:txt复制
reg delete "HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem" /v "Wallpaper" /f 2>$null
reg delete "HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerWallpapers" /v "CurrentWallpaperPath" /f 2>$null

如果有云游戏的需求,可参考这个方案:https://blog.soreatu.com/posts/cloud-gaming/ GPU企业卡 Grid驱动 ParSec串流

如果不想桌面背景被篡改,那就把脚本里wallpaper部分的代码注释下

我参考这个文档买了硅谷的GN7vw(虽然不用配全局代理了,文档里的脚本得调整下),用2022grid公共镜像执行这个方案报错,方案只适用2016/2019系统,对GN7vw来说,只能是2019grid公共镜像

这个方案的脚本是有bug的,其中C:Program FilesParsecvigem10x64devcon.exe 这个路径不存在

在执行方案前需要先安装devcon.exe命令并替换文件路径,否则就会报错https://github.com/parsec-cloud/Parsec-Cloud-Preparation-Tool/issues/102

github脚本:https://github.com/parsec-cloud/Parsec-Cloud-Preparation-Tool/

脚本需要优化

在执行脚本前,需要打开IE浏览器(iexplore.exe)完成一下IE初始化,也就是把打开后的弹窗交互一下直至完成(不是简单的X掉弹窗)

IE初始化完成后,分如下2段复制粘贴执行(测试了2016/2019/2022均OK)

代码语言:txt复制
cd C:
wget http://windows-1251783334.cos.ap-shanghai.myzijiebao.com/115.159.148.149/devcon.exe -outfile c:windowsdevcon.exe

[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
$ScriptWebArchive = "https://github.com/parsec-cloud/Parsec-Cloud-Preparation-Tool/archive/master.zip"
$LocalArchivePath = "C:"
(New-Object System.Net.WebClient).DownloadFile($ScriptWebArchive, "C:ParsecTemp.zip")
Expand-Archive "C:ParsecTemp.zip" -DestinationPath C: -Force
#Rename-Item -Path "C:Parsec-Cloud-Preparation-Tool-master" -NewName "C:ParsecTemp"
cmd.exe /c mklink "C:ParsecTemp" "C:Parsec-Cloud-Preparation-Tool-master"  /D 2>$null

cd $LocalArchivePathParsec-Cloud-Preparation-Tool-masterPostInstall

#查找.PostInstall.ps1中的"set-wallpaper";替换为#"set-wallpaper";
# 读取文件内容
$content1 = Get-Content -Path .PostInstall.ps1
# 替换文本
$content1 = $content1 -replace '"set-wallpaper";', '#"set-wallpaper";'
# 将修改后的内容写回文件
$content1 | Set-Content -Path .PostInstall.ps1
代码语言:txt复制
#$content2 = Get-Content -Path .PostInstall.ps1
#$content2 = $content2 -replace '"setupEnvironment";', '"setupEnvironment" 2>&1 >$null;'
#$content2 | Set-Content -Path .PostInstall.ps1

$content3 = Get-Content -Path .PostInstall.ps1
$content3 = $content3 -replace 'C:\Program Files\Parsec\vigem\10\x64\devcon.exe', 'C:windowsdevcon.exe'
$content3 | Set-Content -Path .PostInstall.ps1

mkdir C:ParsecTempApps -force
wget http://windows-1251783334.cos.ap-shanghai.myzijiebao.com/115.159.148.149/devcon.exe -outfile C:ParsecTempAppsdevcon.exe

mkdir C:ParsecTempDevcon -force
wget http://windows-1251783334.cos.ap-shanghai.myzijiebao.com/115.159.148.149/devcon.exe -outfile C:ParsecTempDevcondevcon.exe

mkdir C:ParsecTempDrivers -force
$desktopPath = [Environment]::GetFolderPath('Desktop')
$linkPath = Join-Path -Path $desktopPath -ChildPath "ParsecTemp"
$targetPath = "C:ParsecTemp"
cmd.exe /c mklink /D "$linkPath" "$targetPath"

#cd $LocalArchivePathParsec-Cloud-Preparation-Tool-masterPreInstall
#$content4 = Get-Content -Path .NetworkRestore.ps1
#$content4 = $content4 -replace 'C:\ParsecTemp\Apps\devcon.exe', 'C:windowsdevcon.exe'
#$content4 | Set-Content -Path .NetworkRestore.ps1

#cd $LocalArchivePathParsec-Cloud-Preparation-Tool-masterPreInstall
#$content5 = Get-Content -Path .Clear-Proxy.ps1
#$content5 = $content5 -replace 'C:\ParsecTemp\Devcon\devcon.exe', 'C:windowsdevcon.exe'
#$content5 | Set-Content -Path .Clear-Proxy.ps1

cd $LocalArchivePathParsec-Cloud-Preparation-Tool-masterPostInstall
$content6 = Get-Content -Path .PostInstall.ps1 -Raw
$content6 = $content6 -replace 'Remove-Item -Path $path\ParsecTemp -force -Recurse', 'cmd.exe /c rmdir "$pathParsecTemp"'
$content6 | Set-Content -Path .PostInstall.ps1

powershell.exe .PostInstall.ps1 -DontPromptPasswordUpdateGPU

注意事项:在执行脚本前,需要打开IE浏览器完成一下IE初始化,也就是把打开后的弹窗交互一下直至完成(不是简单的X掉弹窗),否则会报错:Invoke-WebRequest : 无法分析响应内容,因为 Internet Explorer 引擎不可用,或者 Internet Explorer 的首次启动配置不完整

桌面的GPU Updater无用,如果不小心点开了,直接N

服务端处理好后,注册ParSec账号,在服务端登录ParSec账号,然后在客户端机器上安装ParSec

https://builds.parsec.app/package/parsec-windows.exe

https://builds.parsec.app/package/parsec-macos.pkg

安装好后也登录同一ParSec账号,这样就能在客户端连上服务端了。

0 人点赞