使用Powershell脚本自动执行Sysprep

时间:2019-06-12 13:42:51

标签: powershell cmd sysprep

我正在编写一个脚本来自动删除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是否正在运行,是否可以查看事件查看器?

我在纸上有代码的“逻辑”,但我目前仍停留在该弹出窗口中。

代码逻辑:

  1. 删除不必要的Windows Appx应用(BingNews,Microsoft People,ZuneMusic,Spotify,Candy Crush等)---代码已完成

  2. 运行Sysprep(& "C:\Windows\System32\Sysprep\sysprep.exe" /generalize /shutdown /oobe

    • 如果出现弹出消息(我希望如此),请关闭窗口,阅读setupact.log的最后10行,并检查哪种bloatware仍然存在
  3. 删除过时的软件

  4. 重复步骤2和3,直到Sysprep顺利运行

请注意,所有操作都必须在Powershell中完成。

0 个答案:

没有答案
相关问题