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-Key: 371404

Url: https://administrator.de/contentid/371404

Printed on: April 19, 2024 at 16:04 o'clock

Member: SlainteMhath
SlainteMhath Apr 17, 2018 at 07:55:25 (UTC)
Goto Top
Moin,

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

lg,
Slainte
Member: Historik
Historik Apr 17, 2018 updated at 07:59:53 (UTC)
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
Member: SlainteMhath
SlainteMhath Apr 17, 2018 at 08:46:30 (UTC)
Goto Top
verwende mal

export-csv

anstatt

ConvertTo-Csv | Out-File
Member: NetzwerkDude
Solution NetzwerkDude Apr 17, 2018 at 08:51:29 (UTC)
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
Member: Kraemer
Solution Kraemer Apr 17, 2018 at 09:53:20 (UTC)
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ß
Member: Historik
Historik Apr 24, 2018 at 10:30:22 (UTC)
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! :-)"