Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Как проверить что выполняется выключение компьютера а не перезагрузка ?

Ответить
Настройки темы
Любой язык - Как проверить что выполняется выключение компьютера а не перезагрузка ?

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Редактор локальной групповой политики gpedit.msc
Конфигурация компьютера - Конфигурация Windows - Сценарии - Завершение работы

Мне надо перед выключением компьютера выполнить скрипт, как в скрипте определить что комп выключается а не перегружается ?

Отправлено: 13:21, 01-12-2011

 

Новый участник


Сообщения: 42
Благодарности: 13

Профиль | Отправить PM | Цитировать


Можно счетчиком будет брать только до i=1 сообщения в журнале начиная с самого последнего события
Цитата:
по фильтру в Set colLoggedEvents = objWMIService.ExecQuery
Код: Выделить весь код
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'System' and SourceName='User32' and (EventCode = '1074' or EventCode = '1076')")

For Each objEvent in colLoggedEvents
	If i=1 Then
		Exit For
	End If
		If InStr(objEvent.Message, "Тип выключения: Завершить работу") or InStr(objEvent.Message, "Тип выключения: Выключение питания")> 0 Then 
	msgbox "Выключение а не перезагрузка"
		End If
	i=i+1
Next

Последний раз редактировалось Loran_rus, 02-12-2011 в 12:05.


Отправлено: 11:20, 02-12-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Это неправильно...
Вот так можно сделать ?
Set colLoggedEvents = objWMIService.ExecQuery("Select TOP 1 Message from Win32_NTLogEvent Where Logfile = 'System' and SourceName='User32' and (EventCode = '1074' or EventCode = '1076')")
Или
Set colLoggedEvents = objWMIService.ExecQuery("Select 1 Message from Win32_NTLogEvent Where Logfile = 'System' and SourceName='User32' and (EventCode = '1074' or EventCode = '1076')")

Вот так можно? Он тут выберет только одну запись, как ее потом можно получить без FOR. т.е. как сделать МояЗапись = colLoggedEvents.Выбрать(); или МояЗапись = colLoggedEvents.Прочитать();

Отправлено: 12:02, 02-12-2011 | #12


Старожил


Сообщения: 210
Благодарности: 76

Профиль | Отправить PM | Цитировать


Цитата Реаниматор:
Неважно, нужна первая запись которая отобрана по фильтру...»
Стало быть, не самая последняя, а первая попавшаяся.
В таком случае Ваш вариант с использованием оператора Exit For полностью решает эту задачу.

Loran_rus, Реаниматор, не тратьте время попусту. В данном случае нет способа получить ссылку только на один экземпляр коллекции. Можно лишь при переборе "отсеивать" ненужные экземпляры по тому или иному признаку.

Отправлено: 13:12, 02-12-2011 | #13



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Как проверить что выполняется выключение компьютера а не перезагрузка ?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Выключение компьютера при потере коннекта КАК? interminable Хочу все знать 11 25-07-2016 21:25
Интерфейс - Удаленное выключение и перезагрузка компьютера. poisonkit Microsoft Windows 2000/XP 10 03-02-2012 17:04
Перезагрузка не выполняется. Lifpa Непонятные проблемы с Железом 1 02-09-2011 11:08
Разное - Как правильно проверить что с USB Gik Материнские платы и память 12 18-03-2011 11:10
несанкционированое выключение или перезагрузка пк произошла,как узнатьпричину? sv962 Microsoft Windows 2000/XP 3 15-06-2006 11:39




 
Переход