Имя пользователя:
Пароль:
 

Показать сообщение отдельно


Administrator


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

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


Цитата n_i_x:
да запускаю именно так »
Добавьте проверку по примеру второго
Код: Выделить весь код
$condition = ((get-wmiobject -class "Win32_NTEventlogFile" | where {$_.LogFileName -like 'Application'} | measure-object ).count -eq '0')
if($condition) {
	'create event log'
    New-EventLog -Source BatteryStatusMonitor -LogName Application 
}

Function OnBatteryStatusChange ($NewStatus) {
  If ($NewStatus -eq 1) {
    $EventID = 5001
    $Message = "The computer was unplugged."
  } ElseIf ($NewStatus -eq 2) {
    $EventID = 5002
    $Message = "The computer was plugged in."
  } Else {
    $EventID = 5000
    $Message = "Battery status changed to $NewStatus"
  }
  Write-EventLog -LogName Application -Source BatteryStatusMonitor -EventID $EventID -Message $Message
}

$Query = "select * from __instancemodificationevent within 3 where targetinstance isa 'win32_battery' and targetinstance.batterystatus <> previousinstance.batterystatus"

Register-WmiEvent -Query $Query -Action {OnBatteryStatusChange $Event.SourceEventArgs.NewEvent.TargetInstance.BatteryStatus} -SourceIdentifier "BatteryStatusChange"

For (;;) {}
.
Цитата n_i_x:
а во втором 2 одинаковых кода на разные события »
А второй мне лень смотреть коды - да, события - нет.

Первый я проверял, все нормально работает, в том числе и через планировщик скрывая окно PS. События регистрируются, поставленная вами задача выполняется, что еще надо?

-------
FAQ по Windows 10 .::. Настройка Центра обновления в Windows 10 .::. Чистая установка Windows 10 – пошаговая инструкция

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:10, 21-06-2015 | #9