Вопрос Отображать всплывающее (HTA) сообщение на компьютерах пользователей


Вот мой вопрос. Моя компания берет нашу справочную службу обратно в нашу компанию из MSP, и нам нужно иметь возможность отображать всплывающее сообщение HTA несколько раз в день для HR и LP.

Я знаю, что все будут сжиматься, но у нас около 1500 компьютеров Windows 7 Pro. НЕ присоединился домен (а не мой выбор). Мы используем LogMeIn Central Premiere, с которым я могу развернуть скрипты. Это одно и то же имя пользователя на каждом компьютере, и они не являются членами группы admin, а только группы пользователей. Я хотел бы, чтобы сообщение было опубликовано в 10:00, 13:00 и 16:00, но не может показаться, что файл HTA будет отображаться на компьютере, запущенном в пакетном файле.

Для тестирования в моем офисе я запускал psexec с моей машины на свой тестовый компьютер, и он отлично открывается поверх командной строки (hta-файл сохраняется локально на каждой машине). Похоже, что это связано с Системой 0, и я надеюсь, что кто-то из них, возможно, решил это в прошлом.

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

Любая помощь будет оценена по достоинству.


2
2017-10-25 22:11


происхождения


Полностью не собирается помогать, но ... 1500 не принадлежащих к домену ПК? Стоимость двух высокопроизводительных ЦП будет в буквальном смысле меньше, чем 2,50 доллара США за машину. - Twisty Impersonator
Я полностью согласен, но проиграл с этой войной. У меня около 250 машин в домене от компании, в которой я работал, которая была приобретена крупной компанией, и они вынуждают меня перейти на LogMeIn и DC. Я боролся с этим в течение 8 месяцев, и мне сказали, что этого не происходит и делают эту работу. - Scott J
У меня нет слов. Но я знаю эти типы. Они лучше всего учатся, когда сжигают дом. - Twisty Impersonator
В других новостях планируете ли вы запустить hta-задачу в контексте учетной записи пользователя, которая должна видеть сообщение? - Twisty Impersonator
Эти обстоятельства звучат ужасно. У вас больше проблем в вашей среде, чем для решения этой проблемы. Похоже, что пакет работает, когда вы запускаете его локально, но не удаленно с помощью psexec. Можете ли вы получить какие-либо сценарии для запуска удаленно с успехом? Если вы можете, и это просто ваш сценарий запуска HTA, добавьте ведение журнала в .bat / .ps1, чтобы определить, где скрипт терпит неудачу, убедившись, что он вообще вызван. - root


ответы:


Я сделал что-то подобное раньше с отображением Сообщения HTA на Windows компьютеры с пакетным сценарием, поэтому я решил, что поделюсь с вами своим примером, и вы сможете приспособиться к вашим потребностям, если это поможет с вашей проблемой.

По существу это создает динамический HTA-файл, а затем выполняет его с помощью WScript

Пример сценария партии

Заголовок HTA и три строки тела - это переменные, настроенные вверху в этом примере пакетного сценария. Таймер используется для количества секунд до автоматического закрытия сообщения.

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

IF NOT DEFINED MINIMIZED SET MINIMIZED=1 && START "" /MIN "%~dpnx0" %* && EXIT
@ECHO OFF 

SET MsgTitle=Hey! Here is a Title!
SET MsgLine1=Hey! Here is a message!
SET MsgLine2=Message Line Two.
SET MsgLine3=Message Line Three.
::: -- Set the number in seconds you want the window to close
SET CloseTimer=5
SET TmpHTAFile=%tmp%\tmp.hta
SET TmpVBSFile=%tmp%\tmp.vbs
IF EXIST "%TmpHTAFile%" DEL /Q /F "%TmpHTAFile%"
IF EXIST "%TmpVBSFile%" DEL /Q /F "%TmpVBSFile%"

ECHO ^<html^>                                                       >> "%TmpHTAFile%"
ECHO ^<head^>                                                       >> "%TmpHTAFile%"
ECHO ^<hta:application                                              >> "%TmpHTAFile%"
ECHO APPLICATIONNAME = "Message Alert"                              >> "%TmpHTAFile%"
ECHO ID = "Message Alert"                                           >> "%TmpHTAFile%"
ECHO BORDERSTYLE = "Normal"                                         >> "%TmpHTAFile%"
ECHO CAPTION = "No"                                                 >> "%TmpHTAFile%"
ECHO CONTEXTMENU = "No"                                             >> "%TmpHTAFile%"
ECHO INNERBORDER = "No"                                             >> "%TmpHTAFile%"
ECHO MAXIMIZEBUTTON = "No"                                          >> "%TmpHTAFile%"
ECHO MINIMIZEBUTTON = "No"                                          >> "%TmpHTAFile%"
ECHO NAVIGABLE = "No"                                               >> "%TmpHTAFile%"
ECHO SCROLL = "No"                                                  >> "%TmpHTAFile%"
ECHO SCROLLFLAT = "No"                                              >> "%TmpHTAFile%"
ECHO SELECTION = "No"                                               >> "%TmpHTAFile%"
ECHO SHOWINTASKBAR = "No"                                           >> "%TmpHTAFile%"
ECHO SINGLEINSTANCE = "Yes"                                         >> "%TmpHTAFile%"
ECHO SYSMENU = "No"/^> ^<STYLE^>                                    >> "%TmpHTAFile%"
ECHO html, body {                                                   >> "%TmpHTAFile%"
ECHO background color: #000000                                      >> "%TmpHTAFile%"
ECHO  font-size: 90%;                                               >> "%TmpHTAFile%"
ECHO  line-height: 2.1em;                                           >> "%TmpHTAFile%"
ECHO  margin: 10;                                                   >> "%TmpHTAFile%"
ECHO  padding: 0;                                                   >> "%TmpHTAFile%"
ECHO }                                                              >> "%TmpHTAFile%"
ECHO h1 {font-family: Arial;                                        >> "%TmpHTAFile%"
ECHO  color: #FF0000;                                               >> "%TmpHTAFile%"
ECHO  font-size: 3em;                                               >> "%TmpHTAFile%"
ECHO  text-align: center;                                           >> "%TmpHTAFile%"
ECHO }                                                              >> "%TmpHTAFile%"
ECHO h2 {font-family: Arial;                                        >> "%TmpHTAFile%"
ECHO  color: #ffffff;                                               >> "%TmpHTAFile%"
ECHO  font-size: 1.5em;                                             >> "%TmpHTAFile%"
ECHO  text-align: left;                                             >> "%TmpHTAFile%"
ECHO }                                                              >> "%TmpHTAFile%"
ECHO h3                                                             >> "%TmpHTAFile%"
ECHO {font-family: Arial;                                           >> "%TmpHTAFile%"
ECHO  color: #666666;                                               >> "%TmpHTAFile%"
ECHO  font-size: 1em;                                               >> "%TmpHTAFile%"
ECHO  text-align: center;                                           >> "%TmpHTAFile%"
ECHO }                                                              >> "%TmpHTAFile%"
ECHO ^</STYLE^> ^<script type='text/vbscript'^> Sub Window_onload() >> "%TmpHTAFile%"
ECHO me.ResizeTo 500,280                                            >> "%TmpHTAFile%"
ECHO me.MoveTo Screen.Width /2 - 300,Screen.Height / 2 - 300        >> "%TmpHTAFile%"
ECHO me.SetTimeout "Me.Close()",%CloseTimer%000                     >> "%TmpHTAFile%"
ECHO End Sub                                                        >> "%TmpHTAFile%"
ECHO ^</script^>                                                    >> "%TmpHTAFile%"
ECHO ^</head^>                                                      >> "%TmpHTAFile%"
ECHO ^<body scroll="no"^>                                           >> "%TmpHTAFile%"
ECHO ^<br^>                                                         >> "%TmpHTAFile%"
ECHO ^<h1^>%MsgTitle%^</h1^>                                        >> "%TmpHTAFile%"
ECHO ^<h2^>%MsgLine1%^<br^>                                         >> "%TmpHTAFile%"
ECHO %MsgLine2%^<br^>                                               >> "%TmpHTAFile%"
ECHO %MsgLine3%^</h2^>                                              >> "%TmpHTAFile%"
ECHO ^<h3^>close in %CloseTimer% seconds^</h3^>                     >> "%TmpHTAFile%"
ECHO ^<script type="text/javascript"^>                              >> "%TmpHTAFile%"
ECHO ^</script^>                                                    >> "%TmpHTAFile%"
ECHO ^</body^>                                                      >> "%TmpHTAFile%"
ECHO ^</html^>                                                      >> "%TmpHTAFile%"

ECHO Set objShell = Wscript.CreateObject("Wscript.Shell")           >> "%TmpVBSFile%"
ECHO objShell.Run ("%TmpHTAFile%")                                  >> "%TmpVBSFile%"
wscript "%TmpVBSFile%"
DEL /Q /F "%TmpVBSFile%"

Исходная идея


Дополнительные ресурсы


0
2017-10-29 21:25



Подумайте о создании такого сценария и создании и расписании пакетного сценария для запуска в запланированные сроки с помощью PSEXEC с планировщиком задач из командной строки один раз, после чего он будет выполняться локально ... см. superuser.com/questions/1214736/... для советов с планированием пакетного сценария и устранения неполадок и т. д. - Pimp Juice IT
См. Здесь о создании запланированных задач через командную строку. , , windows-commandline.com/schedule-tasks-command-line для некоторых примеров - Pimp Juice IT