Powershell注册遵守夏令时的计划任务
我通过Powershell注册遵守夏令时的计划任务,powershell,scheduled-tasks,Powershell,Scheduled Tasks,我通过Register ScheduledTask和New ScheduledTaskTriggercmdlet使用PowerShell计划任务为自己全天创建提醒。 夏时制来临时,所有的提醒都变成了一个小时 我能做些什么来避免这种情况?它可能要求任务触发器位于本地时间。必须将计划任务触发器修改为位于本地时间 按正常方式创建触发器 $trigger = New-ScheduledTaskTrigger -Daily -At 10:15am 然后编辑触发器的StartBoundary属性: $t
Register ScheduledTask
和New ScheduledTaskTrigger
cmdlet使用PowerShell计划任务为自己全天创建提醒。
夏时制来临时,所有的提醒都变成了一个小时
我能做些什么来避免这种情况?它可能要求任务触发器位于本地时间。必须将计划任务触发器修改为位于本地时间
$trigger = New-ScheduledTaskTrigger -Daily -At 10:15am
$trigger.StartBoundary = [DateTime]::Parse($trigger.StartBoundary).ToLocalTime().ToString("s")
新建ScheduledTaskRigger创建触发器时,
指定的时间将转换为UTC时间,并保存为触发器的StartBoundary
属性中的字符串。在我的机器上,上午10:15am生成一个“2017-12-19T15:15:00Z”
的$触发器。起始边界
,其中“Z”表示UTC时间。要指定本地时间,我们需要将该日期转换回本地时间并删除“Z”;我们想要“2017-12-19T10:15:00”
。上面的代码段解析日期字符串,将其转换为本地时间,并将其格式化为正确的格式
如果您经常需要这样做,您可能会发现此功能非常有用:
function Fix-Trigger {
param( [parameter(ValueFromPipeline)] [CimInstance] $trigger )
$newTrigger = $trigger.Clone()
$newTrigger.StartBoundary = [DateTime]::Parse(
$trigger.StartBoundary).ToLocalTime().ToString("s")
$newTrigger
}
# Example usage:
$trigger = New-ScheduledTaskTrigger -Daily -At 10:15am | Fix-Trigger
这都是我的