Leider klappt dieser Schritt nicht zufriedenstellend. Add-Content -Value....klappt aber die Ausgabe ist nicht wie gewünscht. PS scheint also alle PC entsprechend zu verarbeiten, als nur die Online-PC. Oder die Zuordnung bei der Dateispeicherung klemmt. Kurz gesagt....
Ich lasse also lieber doch die Schleifen und lese die PC wieder ein. Denn ehrlich gesagt dauert dieser Schritt gar nicht so lange.
Schlimmer wird es ja in der Abfrageschleife $Inventory....
Hier habe ich, auch mit Hilfe von Euch ein Monitor-Array erstellt, um die bis zu 4 angeschlossene Monitore per WMI auslesen zu können.
Das Problem ist jetzt:
Wenn der PC einen WMI-Fehler aufweist und die Abfrage nicht klappt, muss ich diesen Fehler abfangen. Ihr hattet hier den Tipp gegeben es mit Try und Catch zu tun. Ich habe mich mal ausprobiert und versucht den Fehler in nachfolgender Form abzufangen....
Ideenratgeber war dazu:
https://kevinmarquette.github.io/2017-04-10-Powershell-exceptions-everything-you-ever-wanted-to-know/#trycatch
try {[ARRAY]$MonitorList = Get-WmiObject -Class WMIMonitorID -Namespace root\wmi -ComputerName $computer} catch {Write-Output $computer "kein Monitor erkannt"}
Aber natürlich klappt das nur bedingt.....Das Script läuft zwar weiter durch (arbeitet alle PC ab)
Aber wie kann ich jetzt noch dem "catch" mitteilen, dass ich dennoch zur CSV-Ausgabe eine Zeile mit dem PC-Namen erhalten will? Die anderen PC erzeugen ja entsprechende Ausgaben, welche anschließend in eine CSV-Datei gespeichert werden?!
Nur 1 PC erzeugt also Fehler bei der WMI-Abfrage und in der Folge bei der Monitorarrayerstellung und erzeugt keine Zeile im CSV. Der PC fehlt mir in der CSV schlichtweg. Dennoch will ich auch diesen PC erfasst wissen.
Mir würde also der Eintrag reichen :
PCName ($Computer); "keine WMI-Abfrage möglich" oder ähnliches?
Mhhh....Ich weiß = viele Fragen aber ich hoffe auf eure Hilfe hier und darf mich für die vielen schnellen Antworten bisher bedanken..... :thumb1: :)
:schreck: :D :jau: so einfach kann es sein..... Ich sagte ja "Anfänger" grinsss. Da hab ich die Macht der geschweiften Klammern unterschätzt. Vielen Dank natürlich für den erfahrenen Weitblick.
Jetzt bin ich tatsächlich hochauf und zufrieden mit dem Ergebnis.
Also weiter im Text und schauen wie Drucker und Scanner sich finden lassen. Vielen Dank. Neue Fragen werden kommen.
:thumb1: :thumb1: :thumb1: :thumb1:
Au ersteinmal vielen Dank für die unkomplizierte Hilfe.
Ich habe deinen Vorschlag jetzt mal gespeichert und probiere mich mal daran aus.
Nur als Zusatz habe ich das Problem, so profan es auch klang, gelöst und das Script läuft nun wie es soll.
Am Ende muss es lauten:
if IPadr = "" then MsgBox "Von " & PCname & " konnte die IP-Adr. nicht ermittelt werden! Ursache: Offline oder Abbruch", , WScript.ScriptName
if not IPadr = "" then MsgBox PCname & " hat die IP-Adr. " & IPadr , , WScript.ScriptName
if IPadr = "" then Wscript.quit
Nur falls jemand überhaupt daran interessiert sein sollte. Am Ende war es so einfach dass man darauf nur zuletzt kommt.
Jetzt werde ich doch mehr in Richtung Powershell schauen und mich daran versuchen.