none
Operational \ Print Service RRS feed

  • Вопрос

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

    Пока есть вот такое

    $LogName = "Microsoft-Windows-PrintService/Operational"
    $PrintJobs = Get-WinEvent Microsoft-Windows-PrintService/Operational | Where {$_.id –eq 307} 
    $PrintLogs = @()
    
    foreach ($PrintJob in $PrintJobs)
    {
     $PrintLog = New-Object -TypeName PSObject -Property @{Print = $PrintJob.Properties[2].Value , $PrintJob.Properties[3].Value , $PrintJob.Properties[4].Value , $PrintJob.Properties[5].Value , $PrintJob.Properties[6].Value , $PrintJob.Properties[7].Value, $PrintJob.Properties[1].Value}
     $PrintLogs += $PrintLog
      }
      $PrintLogs

    Нужно чтобы к каждой строчке дописывалось время события, че-т не пойму как сделать :)
    Заранее спасибо ща помощь


Ответы

Все ответы

  • Видимо $_.TimeCreated 
  • Получило вот такое
    Get-WinEvent -FilterHashTable @{LogName="Microsoft-Windows-PrintService/Operational";id=307} | Foreach {
    $event = [xml]$_.ToXml()
    New-Object -TypeName PSObject -Property @{PrintService = $_.TimeCreated,$event.Event.UserData.DocumentPrinted.Param3,$event.Event.UserData.DocumentPrinted.Param6,$event.Event.UserData.DocumentPrinted.Param8,$event.Event.UserData.DocumentPrinted.Param2 }
    }

    Помогите чтобы все в одной строке влезало, я умею только из powershell ISE делать. А мне надо в шедулер поставить
  • Почему бы не сохранить скрипт в файл с расширением ps1 и запускать?

    Отвечающий
  • Я имею в виду вывод, получается длинная строчка и она заканчивается как "..." и все не влезает

    Если в powershell ise сделать маленький масштаб, то вывод получается нормальный, а вот как чтобы оно само было максимальной длины...

  • Get-WinEvent -FilterHashTable @{LogName="Microsoft-Windows-PrintService/Operational";id=307} | Foreach {
     $event = [xml]$_.ToXml()
     $_.TimeCreated,$event.Event.UserData.DocumentPrinted.Param3,$event.Event.UserData.DocumentPrinted.Param6,$event.Event.UserData.DocumentPrinted.Param8,$event.Event.UserData.DocumentPrinted.Param2 -join ","
     } | out-file result.csv
    
    

    Отвечающий
  • Все круто, еще вопрос. 

    Каждое событие разделено запятыми это гуд, но вот свойство  $_.TimeCreated выдает и дату и время через пробел, что логично. Можно ли отдельно вывести дату поставить запятую, потом время и еще раз запятую?

  • $_.TimeCreated заменить на $_.TimeCreated.ToShortDateString(),$_.TimeCreated.ToShortTimeString()
    Отвечающий
  • Каждый раз задавая здесь вопрос и получая от вас ответ я потрясаюсь вашими знаниями. Спасибо, что вы это делаете =)
  • А как сделать чтобы каждый раз дописывать в файл, а не создавать новый?
  • Get-WinEvent -FilterHashTable @{LogName="Microsoft-Windows-PrintService/Operational";id=307} | Foreach {
    $event = [xml]$_.ToXml()
    $_.TimeCreated.ToShortDateString(),$_.TimeCreated.ToShortTimeString(),$event.Event.UserData.DocumentPrinted.Param3,$event.Event.UserData.DocumentPrinted.Param6,$event.Event.UserData.DocumentPrinted.Param8,$event.Event.UserData.DocumentPrinted.Param2 -join ","
     } | out-file -append result.csv