1. Создание задачи в планировщике.
1.1. Сначала создаем расписание запуска (ежедневно в полпятого вечера, в течении 10 дней):
PS c:\> $t = New-JobTrigger -Daily -At 4:30PM -DaysInterval 10
1.2. Затем сохраняем в переменной учетные данные:
PS c:\> $cred = Get-Credential contoso\administrator
1.3. В качестве опции указываем запуск задания с повышенными привилегиями:
PS c:\> $o = New-ScheduledJobOption -RunElevated
1.4. И регистрируем задание с именем Start:
PS c:\> Register-ScheduledJob -Name Start -FilePath C:\Scripts\start.ps1 -Trigger $t -Credential $cred -ScheduledJobOption $o
Чтобы убедится в том, что задание создано, можно открыть планировщик и найти наше задание в разделе Microsoft\Windows\PowerShell\SheduledJobs.
2. Execution Policy.
Напомню о политике выполнения скриптов Execution Policy. Посмотреть текущее значение политики можно командой:
PS c:\> Get-ExecutionPolicy
Политика выполнения может иметь значения:
• Restricted — блокируется выполнение любых скриптов. Значение по умолчанию;
• AllSigned — разрешено выполнение скриптов, имеющих цифровую подпись;
• RemoteSigned — скрипты, подготовленные на локальном компьютере, можно запускать без ограничений, скрипты, загруженные из Интернета — только при наличии цифровой подписи;
• Unrestricted — разрешено выполнение любых скриптов. При запуске неподписанного скрипта, который был загружен из Интернета, программа может потребовать подтверждение;
• Bypass — ничего не блокируется, никакие предупреждения и запросы не появляются.
Обычно для безпроблемного выполнения скриптов достаточно задать значение RemoteSigned. Изменить текущее значение можно командой Set-ExecutionPolicy, например:
PS c:\> Set-ExecutionPolicy RemoteSigned -force
Примечание. Если указанная в команде политика выполнения противоречит групповой политике, то параметр запишется в реестр, но действовать не будет.