我正在编写一个脚本来自动删除Windows 10上的过时软件,并且该脚本运行Sysprep命令。如果有任何过时的软件仍导致Sysprep出现问题,则该脚本会检查setupact.log
文件中的错误,并将删除其余的脚本,直到可以正常运行Sysprep为止。
我的代码存在问题,是当我运行Sysprep且仍然存在bloatwares时,会出现以下弹出窗口,并显示一条错误消息
Sysprep无法验证您的Windows安装。查看[Path] \ setupact.log中的日志文件以获取详细信息
编辑:我想出了通过杀死进程来显示错误消息的方法,如何关闭弹出窗口:
$processID = Get-Process sysprep | select -expand id
Stop-Process $processID
现在,问题是我无法区分“好的” sysprep和“不好的” sysprep,因为两者都有弹出窗口。是否可以读取弹出窗口的内容并采取相应措施?也许验证Sysprep是否正在运行,是否可以查看事件查看器?
我在纸上有代码的“逻辑”,但我目前仍停留在该弹出窗口中。
代码逻辑:
删除不必要的Windows Appx应用(BingNews,Microsoft People,ZuneMusic,Spotify,Candy Crush等)---代码已完成
运行Sysprep(& "C:\Windows\System32\Sysprep\sysprep.exe" /generalize /shutdown /oobe
)
setupact.log
的最后10行,并检查哪种bloatware仍然存在删除过时的软件
重复步骤2和3,直到Sysprep顺利运行
请注意,所有操作都必须在Powershell中完成。