Get-hotfix auf mehreren Computern und Export zu CSV
Wie kann ich richtig verwenden $_ in der out-Datei? Hier ist mein code:
get-content computers.txt | Where {$_ -AND (Test-Connection $_ -Quiet)} | foreach {Get-Hotfix -computername $_} | Select CSName,Description,HotFixID,InstalledBy,InstalledOn | convertto-csv | out-file "C:\$_.csv"
Ich versuche, führen Sie eine get-hotfix für alle Computer aufgeführt, die in der text Datei dann möchte ich Sie exportiert werden, um CSV mit dem computer-Namen als Dateiname.
- Ok, ich denke das ist nicht möglich oder? Ausgehend von meinem Verständnis $_ bekommt seinen Wert aus dem vorherigen code-block.
- Ich kann nicht ganz sagen, was Sie zu tun versuchen, aber es sieht aus wie Sie versuchen zu arbeiten, die auf jedem computer Namen in der Datei gespeichert
computers.txt
. Wahr? Wenn dem so ist, dann müssen Sieforeach
auf das Ergebnisget-content
, da gibt Sie ein array von strings mit jeder Zeile der Datei. Ich denke, es könnte leichter sein, um herauszufinden, ob Sie verwendet einige Variablen um Zwischenergebnisse, dann operiert diese Ergebnisse in den nachfolgenden Zeilen. Ist es nötig, verwenden Sie eine einzelne Befehlszeile? - Ja, Sie sind richtig. Brauche ich zum ausführen von " get-hotfix auf jedem computer in der Textdatei aufgeführt. Würde dies nicht funktionieren?
foreach {Get-Hotfix -computername $_}
Und Nein, eine single-line-Befehl ist nicht notwendig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie eine pipeline-Verarbeitung der computers.txt Dateien und eine geschachtelte innerhalb der
foreach
zu verarbeiten, die Liste der hotfixes, die für jeden computer:Edit: Geändert
computers.txt
zu.\computers.txt
, als dies erforderlich ist, für lokale Pfade in der powershellGet-Content : Cannot find path C:\script\computers.txt' because it does not exist.
ich bin das ausführen auf den Ordner, in dem computers.txt gespeichertcomputers.txt
zu.\computers.txt
. Ich werde udpate meine Antwort mit dem gleichen.ConvertTo-CSV | Out-File
vereinfacht werden können, um nurExport-CSV
wenn du magstdir .\computers.txt
etwas zurückzugeben? Wenn ja, können Sie das Rohrdir .\computers.txt | Get-Content | ...
. Wenn nicht, die Datei gibt es nicht - vielleicht hast du den Dateinamen falsch oder Sie sind in den falschen Anbieter.ich sehen kann, mit diesem:
get-content .\computers.txt | Where {$_ -UND (Test-Connection $_ -Quiet)} | foreach{ Get-Hotfix -id KB4012212 -computername $_ | Select-CSName,Beschreibung,HotFixID,InstalledBy,InstalledOn | convertto-csv " | out-file "C:\$_.csv" }
ich sehe nur in dem PC ist das Update (KB4012212) installiert.
es ist möglich, finden Sie in der folgenden
CSNAME Fix(Inst/NotInst)
PC1 FIxInstalled
PC2 FixNotinstalled
PC3 FixnotInstalled
..
..
etc
Ich monkeyed mit dieser für eine Weile und ich nichts gefunden on-line gearbeitet, bis ich diese combo.
Benutzte ich die Methode ist in diesem thread aber es war SO langsam und ich wollte lernen, mehr über die Verwendung von jobs, so das ist, was schließlich für mich arbeiten, auf Windows 7-PS-Version 4.
Alle anderen Optionen waren entweder zu langsam oder haben nicht die Rückgabe von Daten aus dem remote-system.
können Sie Ihre Fehler zu, wie diese: