none
Планировщик заданий и Powershell RRS feed

  • Вопрос

  • Здравствуйте, необходимо с помощью Powershell внести  скрипт в задание и выполнять его с наивысшими правами от пользователя вошедшего в систему - это обязательно, скрипт выполняется только тогда, когда произведен вход!

    $DaysofWeek ="Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
    $time = "23:00"
    $WeeksInterval = 4
    $cred = Get-Credential domen\xxxx
    $t = New-JobTrigger –Weekly –DaysOfWeek $DaysofWeek –At $time -WeeksInterval $WeeksInterval
    $o = New-ScheduledJobOption -RunElevated
    Register-ScheduledJob -Name Start1 –ScriptBlock {C:\ram\form.ps1} -Trigger $t -Credential $cred -
    
    ScheduledJobOption $o


    • Перемещено SQxModerator 23 июля 2016 г. 13:14 Вопрос касаемо сценария на Powershell
    • Изменено Vector BCOModerator 24 июля 2016 г. 19:10 оформил скрипт блок
    23 июля 2016 г. 9:26

Ответы

  • $t = New-ScheduledTaskTrigger -Daily -At "03:00"
    $o = New-ScheduledTaskSettingsSet
    $a = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoLogo -NoProfile -File C:\ram\form.ps1"
    Register-ScheduledTask -TaskName "Start1" -Trigger $t -Settings $o -Action $a

    • Помечено в качестве ответа shmelfrol 26 июля 2016 г. 8:32
    26 июля 2016 г. 8:09
    Отвечающий

Все ответы

  • Пользователь может легко создать задачу сам, а вот назначить Highest не может, если он не обладает правами администратора.

    $DaysofWeek ="Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
    $time = "23:00"
    $WeeksInterval = 4
    $t = New-ScheduledTaskTrigger –Weekly –DaysOfWeek $DaysofWeek –At $time -WeeksInterval $WeeksInterval
    $o = New-ScheduledTaskSettingsSet
    $a = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoLogo -NoProfile -File C:\ram\form.ps1"
    Register-ScheduledTask -TaskName "Start1" -Trigger $t -Settings $o -Action $a

    Если пользователь администратор, то добавить к Register-ScheduledTask -RunLevel Highest.

    Если пользователь не администратор, выставить -RunLevel Highest, можно:

    $p = Get-ScheduledTask Start1 | % Principal
    $p.RunLevel = "Highest"
    Set-ScheduledTask -TaskName Start1 -Principal $p

    25 июля 2016 г. 7:24
    Отвечающий
  • спасибо. но как запустить данную задачу в планировщике от пользователя вошедшего в систему???

    нужно как на скриншоте - только с помощью powershell.

    26 июля 2016 г. 6:25
  • Выполнить команду от пользователя вошедшего в систему:
    Start-ScheduledTask -TaskName "Start1"

    или

    schtasks.exe /Run /TN "\Start1"


    • Изменено KazunEditor 26 июля 2016 г. 6:30
    26 июля 2016 г. 6:29
    Отвечающий
  • если так применить, то это будет вручную запуск, а мне надо чтобы при вводе команды сразу определилось, что скрипт выполняется от вошедшего пользователя в систему - нашел как в cmd делать :

    SCHTASKS /Create /S localhost /U kubstu.edu\shmelevfm /P яяяяя /RU kubstu.edu\shmelevfm /RP яяяя /TN task1 /IT /SC ONEVENT /TR C:\windows\system32\calc.exe - за это отвечает параметр IT

    НО мне выдает ошибку :

    ошибка. учетные данные пользователя не разрешены на локальном компьютере.

    почему понять не могу - пользователь - доменный администратор, также я внес его в группу локальных администраторов.

    26 июля 2016 г. 7:09
  • Я же привел скрипт, который выполняет данное условие. В чем сложность выполнить его под пользователем?
    26 июля 2016 г. 7:11
    Отвечающий
  • Добрый день!

    Есть два варианта:

    1. Через планировщик, установите галочки с наивысшими правами

    2. Создайте GPO ССЫЛКА как показано на примере



    • Изменено Vladimir Sizasko 26 июля 2016 г. 7:18
    • Предложено в качестве ответа Vladimir Sizasko 26 июля 2016 г. 7:18
    • Отменено предложение в качестве ответа shmelfrol 26 июля 2016 г. 7:45
    26 июля 2016 г. 7:17
  • мне необходимо выполнить это действие в 3 часа ночи -  вообщем задача такова - есть скрипт который производит экспорт какой-то виртуальной машины на сетевое хранилище (расшарена папка), но данный скрипт не выполняется из шедулера, если не стоит в параметрах задачи: выполнять только для пользователей вошедших в систему.

    таких задач создавать много и пытаюсь написать еще 2ой скрипт, который будет помещать первый в шедулер со всеми нужными параметрами, таким образом задачи запускаются сами в определенное время, только приходится не выходить пользователем из системы.

    а если я буду выполнять команду schtasks.exe /Run /TN "\Start1", то придется делать батник и вносить его в шедулер.... или же вручную... вся идея теряется....



    • Изменено shmelfrol 26 июля 2016 г. 7:26
    26 июля 2016 г. 7:23
  • А зачем вы постоянно пишете об одном и том же, я привел скрипт, чем он не устраивает?
    26 июля 2016 г. 7:50
    Отвечающий
  • я пытаюсь сделать скрипт, который автоматически создает задания, которые должны запускаться из планировщика сами.

    команда schtasks.exe /Run /TN "\Start1" - это команда запуска задания, тогда зачем мне планировщик???

    мне нужно запустить задание в 3 часа ночи - как мне это сделать с помощью этой команды?????

    26 июля 2016 г. 8:07
  • $t = New-ScheduledTaskTrigger -Daily -At "03:00"
    $o = New-ScheduledTaskSettingsSet
    $a = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoLogo -NoProfile -File C:\ram\form.ps1"
    Register-ScheduledTask -TaskName "Start1" -Trigger $t -Settings $o -Action $a

    • Помечено в качестве ответа shmelfrol 26 июля 2016 г. 8:32
    26 июля 2016 г. 8:09
    Отвечающий
  • извините.... не понял сразу.... 

    не в ту папку смотрел в шедулере.....

    спасибо вам огромное!!!!!!!!!!!!!!!

    26 июля 2016 г. 8:32
  • запускаю под пользователем - доменным администратором - не работает - пишет отказано в доступе.

    27 июля 2016 г. 9:14
  • Запустите консоль Run As Administrator( или Start-Process powershell -Verb Runas).
    27 июля 2016 г. 12:01
    Отвечающий