【发布时间】:2021-04-13 19:13:07
【问题描述】:
我正在配置一个在启动时需要运行一些 PowerShell 代码的 Windows VM。它还需要在关闭时运行一些不同的代码。
要执行前者,我可以在我的初始配置脚本中使用 New-JobTrigger 和 Register-ScheduledJob,如下所示:
$StartupTrigger = New-JobTrigger -AtStartup
Register-ScheduledJob -Name "Startup Job" -Trigger $StartupTrigger -Credential $DesiredCredentials -ScriptBlock {
Do-InterestingThings $using:ExternalResource
}
甚至不必是一个单独的脚本文件,它可以是一个script block。来自外部范围的任何变量都将在作业运行时被序列化和使用。很整洁。
我要解决的真正问题是创建一个外部资源,其生命周期与虚拟机的正常运行时间相关。创建 VM 时,将创建此资源。当 VM 关闭时,需要清理此资源。 如何在 VM 计划关闭之前使用 PowerShell 运行一些代码(不管它是如何获得命令的)? 它不需要是脚本块,它可以是单独的脚本文件。
【问题讨论】:
标签: windows powershell shutdown taskscheduler