繁体   English   中英

在 Windows 10 安装结束时启动一个 powershell 脚本?

[英]Start a powershell script at the end of Windows 10 installation?

我有一个自定义 ISO 映像,我希望在其安装结束时,在登录用户之前运行我的 PowerShell 脚本。

我见过一些自定义 ISO 可以执行此操作。 它是如何完成的?

在捕获 WIM 映像之前,您可以通过几种不同的方式设置脚本以在首次启动时运行。 这里有很多细节和示例可供阅读: Add a custom script to Windows setup 我会推荐以下选项之一:

  1. 简单 CMD在这里创建一个脚本: %WINDIR%\Setup\Scripts\SetupComplete.cmd 该脚本以本地系统权限运行,并在用户看到桌面后立即启动。

  2. 更复杂使用FirstLogonCommands\SynchronousCommand设置创建一个Unattend.xml文件,以在开箱即用体验 (OOBE) 之后但在用户看到桌面之前运行。

  3. Powershell创建计划任务设置为在启动时运行一次,然后将脚本复制到C:\Windows\Tasks\MyScript.ps1

# schedule to run at next startup
$trigger = New-ScheduledTaskTrigger -AtStartup

# first, it runs your script
$action1 = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-F "C:\Windows\Tasks\MyScript.ps1"'
# then it removes this task when done so it doesn't run again
$action2 = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-C Unregister-ScheduledTask -TaskName "MyTask" -Confirm:$false'

# run as local admin
$principal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest

# finally, register everything and you're done!
Register-ScheduledTask -TaskName 'MyTask' -Action $action -Trigger $trigger -Principal $principal -Description 'My task to run after first startup' -ErrorAction Stop

执行上述任一操作后捕获 wim,您应该已设置好。

如果要使用unattend.xml脚本,必须运行c:\windows\system32\sysprep /generalize /oobe /unattend:autounattend.xml /shutdown,并在关机前生成wim镜像从winPE或类似工具启动.

这样您的 wim 映像就可以部署到任何其他机器上,并且您在 autounattend.xml 中选择的脚本将在启动时运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM