Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
1

Запуск планировщика

25.08.2017, 14:49. Показов 1861. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В планировщике заданий, в поле аргумент:

-NoProfile -WindowStyle Hidden -command "& {(Get-WUInstall -ListOnly).Length | Out-File "C:\temp\PowerShell\result.txt" -encoding Unicode; ((get-date) - (Get-WUHistory | where {$_.Title -notlike "*Microsoft Endpoint Protection*"} | select date -First 1).date).days | Out-File "C:\temp\PowerShell\days.txt" -encoding Unicode}"

Задание выполняется с кодом 0, но запись в файлы не выполняется, если в PS выполнять два скрипта по отдельности, то работает. Подскажите в чём может быть проблема? Может где то ошибка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2017, 14:49
Ответы с готовыми решениями:

Удаленное создание планировщика
Добрый день! Есть некая задачка, интересная. Суть задачи, требуется удаленный запуск .bat файла...

PowerShell не работает из планировщика
Добрый день, Подскажите пожалуйста, есть простой скрипт по переносу данных с помощью Bittransfer....

Ошибка скрипта планировщика nnCron
Здравствуйте! В планировщике nnCron есть скрипт: #( Restart NoLog Time: */20 * * * * *...

Запуск планировщика с повышенными правами
Добрый день всем. Имеется Windows Server с установленной службой, которая управляет электронными...

17
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
25.08.2017, 15:38 2
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Задание выполняется с кодом 0, но запись в файлы не выполняется, если в PS выполнять два скрипта по отдельности, то работает. Подскажите в чём может быть проблема? Может где то ошибка?
Попробуйте поменять кавычки для ключа -command и имён файлов, например вот так у меня всё работает из планировщика:

-NoProfile -WindowStyle Hidden -command "&{gps s* | Out-File 'C:\temp\PowerShell\result.txt' -encoding Unicode; gps s* | ? Id -lt 1000 | Out-File 'C:\temp\PowerShell\days.txt' -encoding Unicode}"

Добавлено через 3 минуты
Для поиска ошибок можете сначала проверять из cmd:

C:\>powershell -command "&{gps s* | Out-File 'C:\temp\PowerShell\result.txt' -encoding Unicode; gps s* | ? Id -lt 1000 | Out-File 'C:\temp\PowerShell\days.txt' -encoding Unicode}"
1
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
26.08.2017, 11:05  [ТС] 3
Спасибо Вам большое за помощь, но всё равно не получается, уже как только не пробовал.

Есть ещё один вариант, подскажите как исправить в скрипте по созданию шедулера (ранее Вы мне помогли в другой теме), чтобы шедулер запускал два скрипта 1.ps1 и 2.ps2 Сценарии этих скриптов ниже записаны в переменную.

PowerShell
1
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument '-NoProfile -WindowStyle Hidden -command "& {(Get-WUInstall -ListOnly).Length | Out-File "C:\temp\PowerShell\result.txt" -encoding Unicode; ((get-date) - (Get-WUHistory | where {$_.Title -notlike "*Microsoft Endpoint Protection*"} | select date -First 1).date).days | Out-File "C:\temp\PowerShell\days.txt" -encoding Unicode}"'
Ну я просто не знаю уже что и придумать, чтобы заработало(((
0
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
27.08.2017, 15:53 4
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
но всё равно не получается, уже как только не пробовал.
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument '-NoProfile -WindowStyle Hidden -command "& {(Get-WUInstall -ListOnly).Length | Out-File "C:\temp\PowerShell\result.txt" -encoding Unicode; ((get-date) - (Get-WUHistory | where {$_.Title -notlike "*Microsoft Endpoint Protection*"} | select date -First 1).date).days | Out-File "C:\temp\PowerShell\days.txt" -encoding Unicode}"'
Ещё раз - пробовали блок -command заключить в двойные кавычки, а имена файлов внутри блока в одинарные?
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
27.08.2017, 16:12  [ТС] 5
Да, конечно.
Проводил "кучу экспериментов", вот как раз $Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument '-NoProfile -WindowStyle Hidden -command "& {(Get-WUInstall -ListOnly).Length | Out-File "C:\temp\PowerShell\result.txt" -encoding Unicode}' выполняется на ура, хоть с двойными, хоть с одинарными кавычками 'C:\temp\PowerShell\days.txt', а второй скрипт почему то в шедулере вообще отказывается отрабатывать.
Если просто в PS его запускать '((get-date) - (Get-WUHistory | where {$_.Title -notlike "*Microsoft Endpoint Protection*"} | select date -First 1).date).days | Out-File "C:\temp\PowerShell\days.txt' то без проблем, а в шедулере, выполняется 0x0, но результата нет(((
0
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
27.08.2017, 16:26 6
Лучший ответ Сообщение было отмечено Dimasik1989 как решение

Решение

Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Если просто в PS его запускать '((get-date) - (Get-WUHistory | where {$_.Title -notlike "*Microsoft Endpoint Protection*"} | select date -First 1).date).days | Out-File "C:\temp\PowerShell\days.txt' то без проблем, а в шедулере, выполняется 0x0, но результата нет
Их cmd запускали: powershell -command "&{проблемный блок}" , сообщений об ошибках нет?
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
27.08.2017, 16:52  [ТС] 7
К сожалению проверить сейчас на том сервере не могу физически , но вот дома на PS скрипт работает, а вот во вложении результат выполнения скрипта плохой. Может на сервере был бы другой результат.
Миниатюры
Запуск планировщика  
0
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
27.08.2017, 17:16 8
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
во вложении результат выполнения скрипта плохой. Может на сервере был бы другой результат.
И на сервере будет такая же ошибка. Поэтому я и писал вам - проверьте всё в cmd, а ещё не зря обращал внимание на кавычки. Сравните в cmd:

powershell -command "&{gps | ? {$_.name -like 'sv*'}}"
powershell -command "&{gps | ? {$_.name -like "sv*"}}"

Добавлено через 1 минуту
В вашем случае ошибка из-за "*Microsoft Endpoint Protection*" в двойных кавычках.
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
27.08.2017, 17:22  [ТС] 9
Я делал так:

Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument '-NoProfile -WindowStyle Hidden -command "& {((get-date) - (Get-WUHistory | where {$_.Title -notlike '*Microsoft Endpoint Protection*'} | select date -First 1).date).days | Out-File 'C:\temp\PowerShell\days.txt' -encoding Unicode}"'

И всё равно не работало((

Добавлено через 2 минуты
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument '-NoProfile -WindowStyle Hidden -command "& {((get-date) - (Get-WUHistory | where {$_.Title -notlike '*Microsoft Endpoint Protection*'} | select date -First 1).date).days | Out-File 'C:\temp\PowerShell\days.txt' -encoding Unicode}"'
0
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
27.08.2017, 17:43 10
Лучший ответ Сообщение было отмечено Dimasik1989 как решение

Решение

Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Я делал так:
На скриншоте с ошибкой у вас *Microsoft Endpoint Protection*' в двойных кавычках.

Вариант поиска проблемы я вам показал: powershell -command "&{проблемный блок}" в cmd и смотрите что не так...
1
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
27.08.2017, 17:47  [ТС] 11
Хорошо, KDE777, спасибо, попробую, может где то что то упустил Yо временное решение как вариант, подскажите как сделать xтобы эти два скрипта в шедулере запускались через файлы допустим 1.ps1 и 2.ps1

$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument '......
0
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
27.08.2017, 20:23 12
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
как сделать xтобы эти два скрипта в шедулере запускались через файлы допустим 1.ps1 и 2.ps1
Собрать всё в один файл 3.ps1

$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument '-ExecutionPolicy Bypass -file "C:\Script\3.ps1"'
1
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
28.08.2017, 08:12  [ТС] 13
KDE777, посмотрите пожалуйста вложение, можете что нибудь добавить?
Миниатюры
Запуск планировщика  
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
28.08.2017, 11:13  [ТС] 14
Прошу прощения, я затупил, вот так выполняется в cmd

powershell -NoProfile -WindowStyle Hidden -command "& {(Get-WUInstall -All).Length | Out-File "C:\1\2.txt" -encoding Unicode; ((get-date) - (Get-WUHistory | where {$_.Title -notlike '*Microsoft Endpoint Protection*'} | Select-Object date -First 1).date).days | Out-File "C:\1\1.txt" -encoding Unicode}"

Огромное Вам спасибо, что помогали мне. Осталось только проверить где это действительно должно работать.

Добавлено через 24 минуты
Рано начал радоваться. В то всё выполняется без проблем. А в планировщике выполняется с кодом 0, но без результата((( Какая то засада(

Добавлено через 36 секунд
В cmd выполняется без проблем*

Добавлено через 1 час 47 минут
Оказывается это задание выполняется только от моей локальной учётки, все остальные в том числе от Системы не воспринимает вообще.
0
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.08.2017, 11:23 15
Лучший ответ Сообщение было отмечено Dimasik1989 как решение

Решение

Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Прошу прощения, я затупил, вот так выполняется в cmd
powershell -NoProfile -WindowStyle Hidden -command
Ключи -NoProfile и -WindowStyle Hidden совсем не нужны для отладки. Как раз с ними вы никаких ошибок не увидите. Проверять нужно так: powershell -command "&{проблемный блок}"
1
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
28.08.2017, 11:38  [ТС] 16
Проверил. Работает. Всё выполняется без ошибок. Данные пишутся в 1.txt и 2.txt
Миниатюры
Запуск планировщика  
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
28.08.2017, 11:40  [ТС] 17
И если из под моей учётки выполнять задание в шедулере, то работает, а от системы не выполняется.
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
29.08.2017, 15:49  [ТС] 18
Проверил там где нужно, всё работает. Спасибо.
0
29.08.2017, 15:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2017, 15:49
Помогаю со студенческими работами здесь

Запуск Bat из планировщика задач Windows
Здравствуйте. Прочитал тему на форуме: Разработать командный файл, который формировал бы...

Запуск из Планировщика заданий батника для очистки кэша браузеров
Всем привет. Есть батник для чистки кэша браузеров на терминальном сервере (Windows 2012): @echo...

Запуск bat-файла для копирования определённого файла по сети из Планировщика заданий
Добрый день, Имеется в наличии скрипт на копирование файла по сети. net use Y:...

Запуск "Планировщика заданий" от имени пользователя
Доброго времени суток! Возникла у меня такая проблема. Есть компьютеры, в домене, с учетками...

Изменение задания Планировщика
драсте мне нужно програмно изменить задание планировщика командной строкой (или bat файлом) я...

Права планировщика заданий
Доброго времени суток. У меня возникла следующая проблема - я написал приложение, которое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru