У меня есть сценарий Powershell для добавления новой задачи расписания. Он используется для запуска файла PS1, который включает в себя некоторые SQL-запросы как на локальном ящике SQL, так и на удаленных SQL-блоках.Не удалось установить «Запустить, был ли пользователь включен или нет»
Если этот сценарий создает расписание, я должен сделать одно изменение вручную для его работы: мне нужно установить параметр «Запустить, был ли пользователь включен или нет».
Вот функция:
function createschedule {
$startdatetime = (get-date).AddMinutes(1).ToString("HH:mm")
$taskName = "My Bestest Schedule"
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-file "C:\mypath\bin\mypowershellscript.ps1"'
$trigger = New-ScheduledTaskTrigger -Once -At $startdatetime
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable
echo ""
echo "Adding Basic parameterized task..."
Register-ScheduledTask -TaskName $taskName -Trigger $trigger -Action $action -Setting $settings -User "Administrator" -description "Sitewatch v2 Collector" -RunLevel 1 | Out-null
$trigger.RepetitionInterval = (New-TimeSpan -Minutes 1)
$trigger.RepetitionDuration = (New-TimeSpan -Days 1000)
echo "Adding trigger to the new task..."
Set-ScheduledTask $taskName -Trigger $trigger | Out-Null
echo ""
}
Когда сценарий создает запись, пробеги команды и всплывает окно в течение нескольких секунд. Он по-прежнему работает, но только при входе в систему. Если я вручную переключу этот параметр, он отлично работает.
Вещи, которые я пробовал/считать:
- изменил пользователю NETWORKSERVICE или SYSTEM, но те, кто не может пройти проверку подлинности с SQL при выполнении опрашивающего
- Там есть переключатель я нашел
-logontype ServiceAccount
но Безразлично» т, кажется, работают - Я попытался с помощью «Principal» часть:
#$principal = New-ScheduledTaskPrincipal -GroupID "BUILTIN\Administrators"
но дает ошибки слишком - Наконец, я не могу просто поставить пароль, так как это будет работать на разных коробках, которые имеют разные пароли Fo г Администратор (или любой другой администратор использование я установил)
Глядя на этот пост, я не мог определить, что мне нужно: How to set schedule.service "Run whether user is logged on or not" in Powershell?
Кроме того, Microsoft, кажется, говорят, что просто иметь Principal, это позволяет задача для запуска того, зарегистрирован пользователь или нет, но это не работает для меня:
Подробное описание командлет New-ScheduledTaskPrincipal создает объект, содержащий запланированную основную задачу. Используйте запланированную задачу , чтобы выполнить задачу в контексте безопасности указанной учетной записи . Когда вы используете запланированную задачу, планировщик заданий может выполнить задачу, независимо от того, зарегистрирована ли эта учетная запись.
Найдено здесь: https://technet.microsoft.com/en-us/library/jj649825.aspx
Thx.