Jump to content

la-kro

Members
  • Gesamte Inhalte

    8
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von la-kro

  1. Das funktioniert so leider nicht. Die Variablen sind auch leer
  2. Danke. Ich probiere den VScode Editor und das Script mal aus. Mit den Programmen auslesen hast du recht, auch mit den 32/64bit. Hatte das nur erstmal so zum Testen eingefügt. Evtl muss ich mir da mal was anderes einfallen lassen. Habe gesehen du hast Enumerator beim XML lesen eingefügt. Höre ich zum ersten Mal. Bin ja aber auch neu ;)
  3. Das ist ja ärgerlich. Dann liegt das an der XML Datei das er das nicht richtig auslesen kann? Die kann ich leider nicht ändern. Gehört zu unserer Systemsoftware und ist von der Entwicklung so vorgegeben. Glaub ich mache das denn einfach mit ner CSV Datei. Ist zwar nicht so schön, aber anscheinend wesentlich einfacher
  4. Meinte wegen dem Auslesen der "Installed Programs". Habe die XML mal angehängt. hosts.xml
  5. Moin, danke erstmal an alle. Leider kann ich die Win7 Rechner nicht aussortierten (liegt nicht in meiner Hand). Allerdings gibt es auch schon Win10 Rechner im Netz ;) Das Script sollte ja für alles funktionieren. Einfach das Powershell bei den Win 7ern geht leider auch nicht. Soweit funktioniert das Script von @BOfH_666 ganz gut. Allerdings mussdte ich CIMsession/Instance herausnehmen. Das gibt es offentsichtlich in Powershell 2.0 noch nicht . Habe es dann durch die ganz normalen WMI Abfragen ersetzt. Funktioniert auch soweit. Habe jetzt das Einlesen der IPadressen von den PC`s geändert. Diese stehen in einer XML Datei. Wenn ich jetzt die Adressen, welche in dem Array gespeichert sind, dan muss ich sie ja immer mit $variable.address abrufen. Das funktioniert auch soweit, nur das er anscheined das PScustonobejct vollständig ignoriert. Die Variablen für das Customobject enthalten aber genau die Werte, welche sie enthalten sollten. Woran kann das liegen. Habe ja nur in der aktuell laufenden Variable der Schleife ein .address angehängt. Ohne das .address funktioniert es gar nicht und die Variable enthält auch komplett flasche Werte (Host, anstelle der IP Adresse) Habe den Code mal angehängt. [XML]$a = get-content c:/hosts.xml $a.hosts.valueservers.valueserver.host $pcs = $a.hosts.valueservers.valueserver.host foreach ($pc in $pcs) { if (Test-Connection -ComputerName $pc.address -Count 1 -Quiet) { Write-host Information of $pc.address -Foregroundcolor blue -Backgroundcolor white $CS = Get-wmiobject Win32_ComputerSystem -Computername $pc.address $BIOS = Get-wmiobject Win32_BIOS -Computername $pc.address $IP = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE –ComputerName $pc.address $OS = get-wmiobject win32_Operatingsystem osarchitecture -computername $pc.address $Win = get-wmiobject win32_Operatingsystem caption -computername $pc.address $Mon = get-wmiobject wmimonitorid -computername $pc.address -namespace root\wmi|foreach-object{($_.SerialnumberID|foreach-object{[char]$_}) -join „“} $prog= Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* | select-object Displayname [PSCustomObject]@{ ComputerName = $Cs.Name Model = $CS.Model SerialNumber = $BIOS.SerialNumber "Monitor Serial" = $Mon "OS Version" = $Win.caption "OS 32/64bit" = $OS.Osarchitecture IPAddress = $IP.IPAddress Gateway = $IP.DefaultGateway "NWcard index" = $IP.Index Framework = $prog } } }
  6. 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
  7. 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
×
×
  • Neu erstellen...