Powershell - создание запланированной задачи для запуска в качестве локальной системы / службы - PullRequest
12 голосов
/ 04 января 2010

Может кто-нибудь сказать мне, как создать запланированное задание, используя powershell, который работает как локальная система или локальная служба?

Все отлично работает, кроме вызова ITaskFolder.RegisterTaskDefinition ().

Если я передам $ null или "", то бомбы вызова сообщат неверное имя пользователя или пароль. Любые мысли "

$ Rootfolder.RegisterTaskDefinition ("Тест", $ Taskdef, 6, "ЛОКАЛЬНАЯ СЛУЖБА", "", 3)

Ответы [ 3 ]

6 голосов
/ 16 февраля 2016

Для тех, кто может использовать PowerShell 3.0 на Windows 8 или Windows Server 2012 , новые командлеты позволят вам сделать это простым способом при регистрации запланированной задачи с помощью командлета Register-ScheduledTask и в качестве аргумента -User "System"

Вот запланированное задание, созданное полностью с помощью PS, его целью является перезапуск службы My Service с использованием учетной записи SYSTEM через 3 минуты после запуска системы:

$taskname = "Restart My Service"
$taskdescription = "Restart My Service after startup"
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' `
  -Argument '-NoProfile -WindowStyle Hidden -command "& Restart-Service -displayname \"My Service\""'
$trigger =  New-ScheduledTaskTrigger -AtStartup -RandomDelay (New-TimeSpan -minutes 3)
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Minutes 2) -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1)
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $taskname -Description $taskdescription -Settings $settings -User "System"

Примечание: вам нужно запустить powershell от имени администратора для этого сценария.

5 голосов
/ 05 января 2010

Этот фрагмент кода будет использовать модуль планировщика задач PowerShellPack , чтобы запланировать выполнение задачи в качестве SYSTEM немедленно:

New-Task |
    ForEach-Object {
        $_.Principal.Id = "NTAuthority\SYSTEM"
        $_.Principal.RunLevel = 1
        $_
    } |
    Add-TaskAction -Script {
        "SystemTask" > C:\myTest.txt
    } |
    Add-TaskTrigger -OnRegistration |
    Register-ScheduledTask SystemTask
3 голосов
/ 04 января 2010

Я думаю, вам нужно использовать "nt полномочия \ localservice" в качестве имени пользователя.

Доброжелательность,

Dan

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...