我使用 DISM 安装了 install.wim,并创建了一个 SetupComplete.cmd,它注入了自定义根证书并将默认壁纸更改为我指定的壁纸。Setup\Script 文件夹的内容如下:
安装完成(其中包含以下代码)
powershell -Command Set-ExecutionPolicy RemoteSigned && powershell -File "%SystemRoot%\Setup\Scripts\chgwallpaper.ps1"
chg壁纸.ps1(其中包含更改壁纸的代码)
#Modify Path to the picture accordingly to reflect your infrastructure $imgPath="%SystemRoot%\Setup\Scripts\MyPicture.jpg" $code = @' using System.Runtime.InteropServices; namespace Win32{ public class Wallpaper{ [DllImport("user32.dll", CharSet=CharSet.Auto)] static extern int SystemParametersInfo (int uAction , int uParam , string lpvParam , int fuWinIni) ; public static void SetWallpaper(string thePath){ SystemParametersInfo(20,0,thePath,3); } } } add-type $code #Apply the Change on the system [Win32.Wallpaper]::SetWallpaper($imgPath)
MyPicture.jpg(图像文件)
现在,问题是 setupcomplete.cmd 的其他组件(这里没有提到,例如安装自定义根证书)运行正常。即使这个脚本执行正常,但在第一次登录时,我看到图像没有变化。当我再次运行此 .cmd 文件时,没有更改其中的任何内容,但在安装后手动执行时,它运行正常。令人困惑的是,证书部分执行正确,但壁纸部分没有执行。我开始认为 Windows 实际上在第一次登录时覆盖了壁纸的更改。请帮忙。