la-kro 0 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 Moin Leute, hoffe ich bin hier richtig und ihr könnt mir helfen. Versuche gerade in Powershell einzusteigen und ehrlich gesagt finde ich es noch etwas kryptisch. Habe allerdings auch keinerlei Vorkenntnisse was Programmierung anbelangt. Sitze jetzt vor folgendem Problem. Ich möchte über PS alle PCs im Netzwerk nach bestimmten Information abragen. Es handelt sich alles um WMI Abfragen. So z.B. PC Model, S/N, IPconfig usw. Die PCs werden aus einer Liste ausgelesen und sollten dann in einer Tabelle Zeile für Zeile für den jeweiligen PC mit entsprechden Infos ausgegeben werden. Habe es nicht hinbekommen erst einen einzelnen PC mit allen Abfragen anzusteuern. Dementsprechend musste ich die WMI Befehle nacheinander ausführen. Habe jetzt also mehere "Listen". Also eine mit den S/N von allen PCs, eine mit den Modellen usw. Wie bekomme ich diese jetzt so zusammengefügt, dass ich wie oben erwähnt eine Liste habe mit dem PCs und dahinter die entsprechenenden Werte? Momentan habe ich die einzelnen Werte für jeden PC in unterschiedlichen Zeilen. Hoffe ihr habt ein Idee? Habe das, was ich bis jetzt habe mal eingefügt. Danke im voraus $pcs = Get-Content C:\pc.txt test-connection -computername $pcs -count 1 -quiet $cs = $pcs | foreach {get-wmiobject win32_Computersystem -computername $_} | select Name,Model $bios = $pcs | foreach {get-wmiobject win32_bios -computername $_} | select serialnumber $ip = $pcs | foreach {Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE –ComputerName $_} | select IPAddress,DefaultIPGateway,Description,Index $os = $pcs | foreach {get-wmiobject win32_Operatingsystem osarchitecture -computername $_} | select osarchitecture $oscap = $pcs | foreach {get-wmiobject win32_Operatingsystem caption -computername $_} | select $s = $cs + $bios + $ip + $os + $oscap | select name,model,serialnumber,IPAddress,DefaultIPGateway,Description,Index,caption,osarchitecture | format-table Zitieren Link zu diesem Kommentar
MurdocX 953 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 Hallo und Herzlich Willkommen, als Tipps hätte ich für Dich: Nutze Invoke-Command um nicht für jede Info eine eigene Verbindung herstellen zu müssen Nutze bitte immer die explicite Schreibweise ( -Class und -Property ), das erhöht die Lesbarkeit und vereinfacht das Debugging Führe, wenn es geht, die Skripte mit "AsJob" aus, damit du bei vielen Rechnern die Parallelisierung nutzen kannst. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 (bearbeitet) Hallo la-kro, Willkommen im MCSE-Board. Ich habe Dir mal ein Gerüst gebaut und 2 Deiner Abfragen integriert. Die restlichen kannst Du Dir - analog zu den beiden die Du unten siehst - allein einbauen. (Wenn nicht - einfach wieder melden! ) $pcs = Get-Content C:\pc.txt foreach ($ComputerName in $pcs) { if (Test-Connection -ComputerName $ComputerName -Count 1 -Quiet) { $CimSession = New-CimSession -ComputerName $ComputerName $CS = Get-CimInstance -ClassName Win32_ComputerSystem -CimSession $CimSession $BIOS = Get-CimInstance -ClassName Win32_BIOS -CimSession $CimSession [PSCustomObject]@{ ComputerName = $ComputerName Model = $CS.Model SerialNumber = $BIOS.SerialNumber } } } bearbeitet 11. Mai 2020 von BOfH_666 Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 vor 3 Minuten schrieb MurdocX: Führe, wenn es geht, die Skripte mit "AsJob" aus, damit du bei vielen Rechnern die Parallelisierung nutzen kannst. Das sollte dann aber auch noch mit ForEach Parallel kombiniert werden: https://devblogs.microsoft.com/powershell/powershell-foreach-object-parallel-feature/ @la-kro Falls es sich um ein Netz mit Active-Directory handelt, würde ich mir keine "statische" PC Liste erstellen, sondern die PCs "live" aus dem AD holen. Zitieren Link zu diesem Kommentar
MurdocX 953 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 vor 18 Minuten schrieb testperson: Das sollte dann aber auch noch mit ForEach Parallel kombiniert werden: https://devblogs.microsoft.com/powershell/powershell-foreach-object-parallel-feature/ Das ist definitiv ein interessantes Feature! Übrigens bietet sich das Netzlaufwerk auch als einen guten Ablageort an, wenn du die Daten nicht direkt weiterverarbeiten muss. Mit Out-File und dem Computernamen als Dateinamen lässt sich das gut handeln. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 Hmmm ... ich kann mich natürlich auch irren (ich tue das ziemlich häufig), aber ist es für einen Anfänger nicht erstmal einfacher, die Befehle "ganz normal" - also sequenziell abzuarbeiten? ... zumal für Foreach-Object -Parallel auch Powershell 7 nötig ist, was noch nicht jeder nutzt. vor 39 Minuten schrieb MurdocX: Mit Out-File und dem Computernamen als Dateinamen lässt sich das gut handeln. ... und hier würd ich auch eher ein Export-Csv empfehlen. Wenn's schon mal strukturierte Daten sind .... Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 vor 9 Minuten schrieb BOfH_666: Hmmm ... ich kann mich natürlich auch irren (ich tue das ziemlich häufig), aber ist es für einen Anfänger nicht erstmal einfacher, die Befehle "ganz normal" - also sequenziell abzuarbeiten? ... zumal für Foreach-Object -Parallel auch Powershell 7 nötig ist, was noch nicht jeder nutzt. Da bin ich bei dir. Meine "Ergänzung" galt auch eher "dem anderen Jan". :) 1 Zitieren Link zu diesem Kommentar
MurdocX 953 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 Lasst uns mal schauen welchen Weg der TO nach Rom einschlägt 1 Zitieren Link zu diesem Kommentar
la-kro 0 Geschrieben 11. Mai 2020 Autor Melden Teilen Geschrieben 11. Mai 2020 vor 2 Stunden schrieb BOfH_666: Hmmm ... ich kann mich natürlich auch irren (ich tue das ziemlich häufig), aber ist es für einen Anfänger nicht erstmal einfacher, die Befehle "ganz normal" - also sequenziell abzuarbeiten? ... zumal für Foreach-Object -Parallel auch Powershell 7 nötig ist, was noch nicht jeder nutzt. ... und hier würd ich auch eher ein Export-Csv empfehlen. Wenn's schon mal strukturierte Daten sind .... Danke erstmal für das Feedback. Ihr habt recht, das Foreach Parallel kann ich leider nicht nehmen. Geht erst anscheinend ab Version 3. Benutzte teilweise noch Version 2. Werde mal etwas rum experimentieren Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 vor 9 Minuten schrieb la-kro: Benutzte teilweise noch Version 2. Die solltest Du aber DRINGENDS in Rente schicken. Du hast also noch Windows 7 im Einsatz. Das solltest Du auch DRINGENDS in Rente schicken. Auf den Clients, die Du per WMI/CIM abfragen möchtest, muss übrigens nicht unbedingt eine aktuelle Powershell laufen. Die Abfragen laufen ja eben über WMI/CIM und nicht über Powershell. Zitieren Link zu diesem Kommentar
MurdocX 953 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 Schau mal hier: WMF 5.1: PowerShell 5.1 für Windows 7 / 8.1, Server 2008 R2 und 2012 (R2) https://www.windowspro.de/wolfgang-sommergut/wmf-51-powershell-51-fuer-windows-7-81-server-2008-2012-r2 Windows Management Framework 5.1 | Microsoft https://www.microsoft.com/en-us/download/details.aspx?id=54616 Dort kannst du deine Version auf die semiaktuelle 5.1 hochheben Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 (bearbeitet) vor 10 Minuten schrieb MurdocX: Dort kannst du deine Version auf die semiaktuelle 5.1 hochheben Ich hätt' ja wieder einfach ein Upgrade auf Windows 10 empfohlen. Da ist die 5.1 sowieso schon mit dabei. Alles andere verlängert doch nur das Leiden. Hat einer von Euch noch Kunden, die wirklich noch Windows 8.1 im Einsatz haben? bearbeitet 11. Mai 2020 von BOfH_666 Zitieren Link zu diesem Kommentar
MurdocX 953 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 vor 2 Minuten schrieb BOfH_666: Hat einer von Euch noch Kunden, die wirklich noch Windows 8.1 im Einsatz haben? Öh, ja... Wir selber Das liegt teilweise an den verstreuten Notebooks und der tollen "Zufriedenheit" mit Windows 8.1. Man muss sich nur lange genug an was gewöhnen, dann ist auch der Schmerz nicht mehr so groß. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 vor 3 Minuten schrieb MurdocX: Öh, ja... Wir selber Ach Gottchen .... Du Ärmster ... ich werde Dich in meine Abend-Gebete einschließen. 1 Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 11. Mai 2020 Melden Teilen Geschrieben 11. Mai 2020 vor 2 Stunden schrieb BOfH_666: Ach Gottchen .... Du Ärmster ... ich werde Dich in meine Abend-Gebete einschließen. Die 10 Gebote... ;) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.