historik
Goto Top

Powershell in CSV

Hallo zusammen,

ich fange gerade mit Powershell an und bin daher noch ein Anfänger ,allerdings ich brauche ein Skript auf WMIC-Basis,hier ist mein Lösungsversuch:

zum Skript es soll von einem USB-Stick aus gestartet werden, mit dem Befehl den Rechnernamen, IP-Adresse, MAC-Adresse, Anmeldenamen, Betriebssystem und installierte Software in eine CSV-Datei auslesen – die auch auf dem USB-Stick gespeichert werden soll.

Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, ServicePackMajorVersion, OSArchitecture,InstallDate, CSName, WindowsDirectory  | ConvertTo-Csv | Out-File E:\testen.csv

function Get-NetworkConfig {
  Get-WmiObject Win32_NetworkAdapter -Filter 'NetConnectionStatus=2' |  
    ForEach-Object {
      $result = 1 | Select-Object Name, IP, MAC
      $result.Name = $_.Name
      $result.MAC = $_.MacAddress
      $config = $_.GetRelated('Win32_NetworkAdapterConfiguration')   
      $result.IP = $config | Select-Object -expand IPAddress
      $result
    }

}


 Function Get-LoggedOnUsers {
        $computername = $env:COMPUTERNAME
        Get-WmiObject -Class Win32_LogonSession -ComputerName $computername |
        foreach {
            $LogonId = $_.__RELPATH -replace """", "'"  
            Get-WmiObject -ComputerName $computername -Query "ASSOCIATORS OF {$LogonId} WHERE ResultClass = Win32_Account" | select "Caption"  
        }
    }

Get-NetworkConfig | ConvertTo-Csv | Out-File E:\testen.csv
Get-WmiObject -Class Win32_Product -ComputerName . | Format-Wide -Column 1  | ConvertTo-Csv | Out-File E:\testen.csv 

Leider sieht es in der Csv-Datei nicht so aus wie es soll.

Ich hoffe ihr könnt mir helfen!

Gruß!
Historik

Content-ID: 371404

Url: https://administrator.de/forum/powershell-in-csv-371404.html

Ausgedruckt am: 06.04.2025 um 19:04 Uhr

SlainteMhath
SlainteMhath 17.04.2018 um 09:55:25 Uhr
Goto Top
Moin,

Leider sieht es in der Csv-Datei nicht so aus wie es soll.
Ja und wie soll's aussehen?

lg,
Slainte
Historik
Historik 17.04.2018 aktualisiert um 09:59:53 Uhr
Goto Top
Es soll eine Tabelle sein die mir Rechnernamen, IP-Adresse, MAC-Adresse, Anmeldenamen, Betriebssystem und installierte Software zeigt,
stattdessen habe ich nur irgendwechle Zahlen.

lg,
Historik
SlainteMhath
SlainteMhath 17.04.2018 um 10:46:30 Uhr
Goto Top
verwende mal

export-csv

anstatt

ConvertTo-Csv | Out-File
NetzwerkDude
Lösung NetzwerkDude 17.04.2018 um 10:51:29 Uhr
Goto Top
Da du alles in ein und dieselbe ausgabedatei schreibst, wird die immer überschrieben, d.h. zulezt steht in der testen.csv das ergebnis von zeile 27
d.h. prüf doch erstmal alle funktionen einzeln was die machen
Kraemer
Lösung Kraemer 17.04.2018 um 11:53:20 Uhr
Goto Top
Moin,

du überschreibst die CSV immer wieder.
Nutze z.B. -Append - siehe https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...

Gruß
Historik
Historik 24.04.2018 um 12:30:22 Uhr
Goto Top
Hier ist die Lösung falls sie jemand braucht!
Write-Host -ForegroundColor Yellow "Skript wird ausgeführt ... "  
Get-WmiObject Win32_OperatingSystem | Select-Object Caption,Version, OSArchitecture, CSName, WindowsDirectory  | ConvertTo-Csv | Out-File E:\testen.csv 

function Get-LoggedOnUsers {
        $computername = $env:COMPUTERNAME
        Get-WmiObject -Class Win32_LogonSession -ComputerName $computername |
        foreach {
            $LogonId = $_.__RELPATH -replace """", "'"  
            Get-WmiObject -ComputerName $computername -Query "ASSOCIATORS OF {$LogonId} WHERE ResultClass = Win32_Account" | select "Caption"   
        }
    }


function Get-NetworkConfig {
  Get-WmiObject Win32_NetworkAdapter -Filter 'NetConnectionStatus=2' |  
    ForEach-Object {
      $result = 1 | Select-Object Name, IP, MAC
      $result.Name = $_.Name
      $result.MAC = $_.MacAddress
      $config = $_.GetRelated('Win32_NetworkAdapterConfiguration')   
      $result.IP = $config | Select-Object -expand IPAddress 
      $result
    }

}

Get-LoggedOnUsers | ConvertTo-Csv | Out-File E:\testen.csv -Append
Get-NetworkConfig | ConvertTo-Csv | Out-File E:\testen.csv -Append
Get-WmiObject -Class Win32_Product | Select-Object Name,Version, IdentifyingNumber | ConvertTo-Csv | Out-File E:\testen.csv -Append

Write-Host -ForegroundColor Green "Skript war erfolgreich! :-)"