запись журнала событий в файл, powershell - PullRequest
2 голосов
/ 05 марта 2012

Скажем, вы хотите посмотреть последние 3 события в журнале событий для приложения типа со всех рабочих столов на локальной сети.моя проблема в том, что $ a ниже создает массив (я думаю), и я хочу записать это в файл.сейчас он «работает», но просто выплевывает несколько пустых строк на машину.если $ msg = закомментировано, я получаю это "исключение, вызывающее" Join "с аргументом (ами)" 2 ":" Значение не может быть нулевым. "

$servers = "machine1, "machine2"
$date = ( get-date ).ToString('yyyyMMdd')
$file = New-Item -type file "c:\temp\$date-test1.txt" -Force
$msg = ""
foreach($server in $servers){
    Write-Host "Connect to $server..."
    add-content $file "$server $date"
    $a = Get-EventLog -Logname application -ComputerName $server -EntryType warning -newest 3 | 
    Format-Table -Wrap -Property Source,Message -Autosize  
    foreach($element in $a)
    {[string]::join($element, $msg)}
    Write-Host $msg
    #add-content $file $msg
}   

1 Ответ

3 голосов
/ 05 марта 2012

Вы думаете о тексте, а не об объектах в конвейере.Не пытайтесь анализировать, присоединяться или возиться со строками.

$servers = "machine1, "machine2"
$date = ( get-date ).ToString('yyyyMMdd')
$file = New-Item -type file "c:\temp\$date-test1.txt" -Force
Get-EventLog -log Application -Computer $servers -entry Warning -newest 3 | Select MachineName,Source,Message | out-file $file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...