Триггер запланированной задачи должен быть изменен на местное время.
Создайте триггер как обычно
$trigger = New-ScheduledTaskTrigger -Daily -At 10:15am
Затем отредактируйте Свойство StartBoundary триггера:
$trigger.StartBoundary = [DateTime]::Parse($trigger.StartBoundary).ToLocalTime().ToString("s")
Объяснение: При создании триггера с New-ScheduledTaskTrigger,
указанное время преобразуется в время UT C и сохраняется как строка в свойство триггера StartBoundary
. На моей машине 10:15 утра выдает $ trigger.StartBoundary
из 2017-12-19T15:15:00Z"
, где «Z» обозначает время UT C. Чтобы указать местное время, нам нужно преобразовать эту дату обратно в местное время и удалить «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
Это все с здесь .