Спрашивающий
SCCM 2012 R2 + pop up message

Общие обсуждения
-
Приветствую всех.
Есть задачка - распространяю через SCCM определённый скрипт, в нём нужно оповещать пользователя о производимых действиях на ПК. Это можно сделать, например, таким кодом в батнике:
START CMD /C "ECHO 'Нужный нам текст сообщения'"
Либо тоже самое, только через VBS:
Set objArgs = WScript.Arguments messageText = objArgs(0) MsgBox messageText
cscript notification.vbs "Нужное нам сообщение"
Так вот, когда запускаешь вручную - работает, сообщения показывает. Когда распространяешь через SCCM - не работает. Т.к. контент загружается, но скрипт не выполняется почему-то. В логах пусто, да и что он там должен показать то.
Права пользователю давал админа, отключал UAC.
Может быть ещё есть какие-то особенности, про которые я не знаю?
- Изменен тип Petko KrushevMicrosoft contingent staff, Moderator 22 июня 2016 г. 7:07
6 июня 2016 г. 4:29
Все ответы
-
на устройство или на пользователя распространяете скрипт?6 июня 2016 г. 4:59
-
Пробовал и так и так.
Одинаково не работает.
Причем на двух разных тестовых машинах (Win 7, Win 8.1)
6 июня 2016 г. 5:03 -
Скрипт выполняется в контексте учетной записи агента (обычно System). Поэтому ваши скрипты выводят сообщение "туда".
Попробуйте использовать msg.exe или создавать скриптом задачу планировщика запускаемую в контексте пользователя.
Сазонов Илья
https://isazonov.wordpress.com/6 июня 2016 г. 5:49Модератор -
в cmd
msg * /w /TIME:180 "Начинается процесс установкиПожалуйста, закройте все приложения и нажмите ОК или через 3 минуты процесс установки начнется автоматически!. "
- Изменено Vorobyev Alexey 6 июня 2016 г. 6:13
6 июня 2016 г. 6:12 -
просто используйте powershell app deployment toolkit
SCCM Blog: http://masyan.ru SCCM User Group Russia: https://www.facebook.com/groups/sccm.russia/
- Изменено Anton MasyanMVP, Moderator 6 июня 2016 г. 7:18
6 июня 2016 г. 7:17Модератор -
Этот вариант подходит в том случае, если у меня сложный bat-скрипт, который проверяет различные версии ПО и т.д.? Можно ли вызывать эти уведомления из bat?7 июня 2016 г. 3:56
-
Не работает, всё равно выводит в SYSTEM, судя по всему.
Как бы я не запускал её.
7 июня 2016 г. 4:16 -
Не работает, всё равно выводит в SYSTEM, судя по всему.
Как бы я не запускал её.
Сазонов Илья
https://isazonov.wordpress.com/7 июня 2016 г. 4:19Модератор -
вывод сообщения msg не выводит текущему пользователю ничего.
По всей видимости поток вывода перенаправляется УЗ агента.
7 июня 2016 г. 4:29 -
7 июня 2016 г. 4:39Модератор
-
ну у меня в SCCM пакет, в пакете запускается showntf.bat.
В самом батнике msg * /w /TIME:180 "message"
7 июня 2016 г. 4:44 -
вообще говоря когда предполагается интеракция, любая, то окружение выполнения считает это чем то не секьюрным и пишет в моем случае нечто такое
Exception calling "Show" with "4" argument(s): "Showing a modal dialog box or f RunPowerShellScript 06.06.2016 15:59:34 4228 (0x1084) orm when the application is not running in UserInteractive mode is not a valid RunPowerShellScript 06.06.2016 15:59:34 4228 (0x1084) operation. Specify the ServiceNotification or DefaultDesktopOnly style to displ RunPowerShellScript 06.06.2016 15:59:34 4228 (0x1084)
Тут я пытаюсь вызвать интерфейс через [System.Windows.Forms], и вот такая ругань сыпется в ТС. Через пакет не пробовал, но возможно у вас нечто похожее... Хотя сама по себе msg.exe не является чем то интерактивным =/ Надо курить
7 июня 2016 г. 7:44 -
Сейчас любой сервис, в том числе агент SCCM, это не интерактивное приложение и вывод сообщений на экран ему запрещено. Вполне вероятно, что msg попадает под это ограничение. Тогда самое простое это создать задачу в планировщике и запустить её.
Сазонов Илья
https://isazonov.wordpress.com/7 июня 2016 г. 8:52Модератор -
Спасибо, получилось.
Схема такая - делаем приложение (application), которое собственно выполняет нашу основную задачу (например, обновляет офис). У него на вкладке "Зависимые приложения" выбираем предварительно созданное нами приложения для вывода уведомлений пользователя. Это подприложене мы конечно же будем запускать с правами пользователя, что в настройках и проставляем.
В общем, весьма геморно. Жаль что нет адекватного механизма.
8 июня 2016 г. 4:24 -
Лучше наверно ставить к приложению с msg.exe в зависимые приложения Офис. Дабы сначала как необходимость ставился офис и в случае успеха установки выдавался бы pop-up. Ну в смысле сэтапиться офис, срабатывает детекшн - все ок, значит выполняется программа с msg.exe.
А так получается сначала идет pop-up независимо от удачности установки офиса =/ Хотя как вариант оповещения а-ля "Сейчас будет проведено обновление" использовать можно =)
- Изменено NTLose 8 июня 2016 г. 6:30
8 июня 2016 г. 6:25 -
Именно для целей оповещения ПЕРЕД началом установки сделано так.
Только вот загвоздка, я тестировал на ПК с админскими правами, а под обычным пользователем без прав не запускается schtasks :(
8 июня 2016 г. 7:27 -
задачу на пользователя можно создать в контексте администратора.
Сазонов Илья
https://isazonov.wordpress.com/8 июня 2016 г. 7:33Модератор -
скажите пожалуйста msg вывод вы тестируете на ПК, на котором залогинены по RDP ?
msg * это выводить во все сессии, но выводит он их последовательно к примеру /w /TIME:180 "message" то message на протяжении 3х минут показывается в консольную сессию после чего переходит к следующей и опять 3 мин.
- Изменено Vorobyev Alexey 8 июня 2016 г. 11:28
8 июня 2016 г. 10:55 -
Да, по RDP.
Т.е. есть шанс что я просто не попадаю в текущий вывод в данной сессии? Так сессий там только одна - моя.
8 июня 2016 г. 11:34 -
Вы, наверное, про пакет говорите?
В пакете можно, в приложении нельзя.
8 июня 2016 г. 11:54 -
А, или Вы про контекст schtasks?
Ну , можно, конечно, через ключи /U и /P, но это ж придётся передавать пароль от доменного админа в открытом виде. По другому как-то можно?
8 июня 2016 г. 13:00 -
8 июня 2016 г. 13:05
-
Да, по RDP.
Т.е. есть шанс что я просто не попадаю в текущий вывод в данной сессии? Так сессий там только одна - моя.
ваша сессия RDP это сессия имеет ID 1, консольная сессия ID 0, в принципе можете зайти по RDP в консольную сессию используя в параметре подключения /admin.
при /w /TIME:180 он ожидает нажатие ОК 3 минуты, после чего окно закрывается и он переходит в следующую сессию. попробуйте например /w /TIME:10 и подождите немного.
данный вывод сообщения в батниках использую постоянно, отрабатывает корректно.
- Изменено Vorobyev Alexey 9 июня 2016 г. 7:12
9 июня 2016 г. 6:59 -
Спасибо за помощь!
Но к сожалению у меня не работает этот подход.
Всё стандартно - есть пакет, который запускает батник, в батнике
msg * /w /TIME:10 "message"
Пакет загружается, но скрипт НЕ отрабатывает. Тестировал под правами юзера и админа. Может быть я что-то делаю не так?
- Изменено DenisBobkov 9 июня 2016 г. 22:51
9 июня 2016 г. 22:51 -
что в логе на клиенте %windir%\ccm\logs\execmgr.log ?
и еще вопрос, пробовали просто данный батник руками запускать, так же не отрабатывает ?
- Изменено Vorobyev Alexey 10 июня 2016 г. 6:08
10 июня 2016 г. 6:06