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

943
Scott J

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

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

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

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

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

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

1 ответ на вопрос

0
Pimp Juice IT

Раньше я делал нечто подобное с отображением сообщений 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 >> "%TmpHTAFile%" ECHO h2 >> "%TmpHTAFile%" ECHO h3 >> "%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%" 

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


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

Рассмотрите возможность создания такого сценария и создания и планирования пакетного сценария для запуска в запланированное время с помощью PSEXEC с планировщиком задач из командной строки, а затем он будет выполняться локально ... см. Https://superuser.com/questions/1214736/ 1217125 # 1217125 для подсказок по планированию пакетного сценария, устранению неполадок и т. д. для Windows-10-запланированных задач с рабочей станцией-блокировка-разблокировка-не-срабатывание Pimp Juice IT 6 лет назад 0
Смотрите здесь о создании запланированных задач через командную строку. , , https://www.windows-commandline.com/schedule-tasks-command-line/ для некоторых примеров Pimp Juice IT 6 лет назад 0

Похожие вопросы