This thread hatte ich sehr gut begonnen, aber jetzt brauche ich mehr HilfePowershell - Variablen und foreach-Schleife
ich eine Schleife durch meine serverlist.txt Datei ist versucht, und die Ergebnisse von Get-EventLog an Out-Gridview-Pass und dann auf eine .csv-Datei. Ich habe das funktioniert, aber ich muss alle Datensätze im GridView-Fenster auswählen und dann für jeden Server auf OK klicken.
Also habe ich die Idee, dass ich eine $ sys-Variable außerhalb der Schleife erstellen möchte, gehen Sie in, hängen Sie die Ergebnisse an diese Variable für jeden Server an, und beenden Sie die Schleife und $ sys übergeben, um Grid-Ansicht .
Meine Verwirrung kommt regardinf Variablendeklaration, Typ, Anhänge und Platzierung im Code ...
Ich bin jetzt nur PS lernen, so kann dies für Sie ein wenig einfach sein :)
diese Code funktioniert ... müssen in der variablen Idee an den richtigen Stellen hinzuzufügen:
#Drop the existing files
Remove-Item C:\system.csv
# SERVER LIST PROPERTIES
# Get computer list to check disk space. This is just a plain text file with the servers listed out.
$computers = Get-Content "C:\ServerList.txt";
#Declare $sys here ??
# QUERY COMPUTER SYSTEM EVENT LOG
foreach($computer in $computers)
{
if(Test-Connection $computer -Quiet -Count 1)
{
Try {
# $sys =
Get-EventLog -ComputerName $computer -LogName System -EntryType "Error","Warning" -After (Get-Date).Adddays(-7) `
| Select-Object -Property machineName, EntryType, EventID, Source, TimeGenerated, Message `
| Out-GridView -PassThru | Export-Csv C:\System.csv -NoTypeInformation -Append;
}
Catch
{
Write-Verbose "Error $($error[0]) encountered when attempting to get events from $computer"
}
}
else {
Write-Verbose "Failed to connect to $computer"
}
}
# $sys | Out-GridView....etc.
Dank!
Kevin3NF
add '$ sys = @()' außerhalb der Schleife (wie man wollte) – 4c74356b41
und verwenden '$ sys + = Get-EventLog' hinzufügen Daten es –
Ist die Rasteransicht erforderlich oder willst du einfach Dinge in eine CSV-Datei einfügen? –