Отображать всплывающее сообщение (HTA) на компьютерах пользователей
Вот мой вопрос Моя компания забирает нашу справочную службу обратно в нашу компанию от MSP, и мы должны иметь возможность отображать всплывающее сообщение HTA несколько раз в день для HR и LP.
Я знаю, что все будут в восторге от этого, но у нас есть около 1500 компьютеров под управлением Windows 7 Pro, которые НЕ присоединены к домену (не мой выбор). Мы используем LogMeIn Central Premiere, с помощью которого я могу развернуть сценарии. Это одно и то же имя пользователя на каждом компьютере, и они не являются членами группы администраторов, просто группа пользователей. Я хотел бы иметь возможность получать сообщения в 10:00, 13:00 и 16:00, но не могу получить файл HTA для отображения на компьютере, работающем через командный файл.
Для тестирования в моем офисе я запустил psexec со своего компьютера на тестовый компьютер, и он прекрасно открывается в командной строке (файл hta сохраняется на каждой машине локально). Похоже, что это связано с Системой 0, и я надеюсь, что кто-то там уже занимался этим в прошлом.
Я также пытался создать запланированное задание для вызова файла hta, но еще раз файл не показывает запущенный, когда пользователь вошел в систему.
Любая помощь будет оценена.
1 ответ
Раньше я делал нечто подобное с отображением сообщений 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%"