Войти

Показать полную графическую версию : Отображение сообщения на всех пользователей


SanyaJoker
21-04-2011, 17:15
Доброго времени суток!

Возник такой вопрос. Есть интересный скрипт для завершения работы компьютера:


Dim vbOK,Inf,intDo, Cancel
'Dim Message, Title
vbOK = 1
Inf = 64
Cancel = 2
Message = "Время выключать компьютер!"
Title = "Подтвердите действие"
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run("shutdown /s /t 15 /f")
intDo = WSHShell.Popup(Message,0,Title,vbOK + Inf)
if intDo = Cancel Then
WSHShell.Run("shutdown /a")
WScript.Quit()
End if


В скрипте все устраивает кроме одного. сообщение отображается у пользователя от которого запущен данный скрипт. А необходимо что бы у всех либо у того пользователя который вошел в систему.

Заранее благодарен!

BigBoo
21-04-2011, 22:04
SanyaJoker, попробуйте так: strComputer = "."
strNamespace = "Root\CIMV2"
strClass = "Win32_OperatingSystem"
Set objClass = GetObject("WinMgmts:{(Shutdown,RemoteShutdown)}!\\" & strComputer & "\" & strNamespace & ":" & strClass)
Set colInstances = objClass.Instances_

For Each objInstance In colInstances
iAnswer = MsgBox("Выключить компьютер сейчас?", vbQuestion + vbOKCancel, "Завершение работы...")
If iAnswer = vbOK Then
objInstance.Shutdown()
End if
Next

SanyaJoker
22-04-2011, 12:45
BigBoo, все равно не появляется :(

amel27
25-04-2011, 05:33
сообщение всем отправить как раз можно:
msg * "Текст сообщения"
... а вот получить подтверждение о выборе пользователя уже никак, так как "отправитель" и "получатель" работают в разных контекстах безопасности... Для этого нужно иметь скрипт-"агент", который постоянно крутится под пользователем, обрабатывает нужные события и сообщает скрипту-"серверу" о результатах.




© OSzone.net 2001-2012