doskias
Goto Top

Eigene CSV erstellen via PS führt nur zu Systemeinträge

Moin zusammen,

irgendwie bringt mich Powershell grad um den Verstand und ich verstehe nicht wieso. Kurzes Szenario: Ich will Protokolldateien erstellen. diese sollen monatlich und täglich erstellt werden. Das ganze sieht gekürzt auf die relevanten Informationen so aus:

$Protokollpfad=[Ein Pfad halt :-)]
$Gruppe_Status=Get-ADComputer -filter * -properties [das was ich wissen will] -SearchBase "meine Rechner"   

$daily=get-date -Format dd.MM.yyyy
$monthly=get-date -Format MM.yyyy
$daily_log=$Protokollpfad+"daily\"+$daily+".log"  
$monthly_log=$Protokollpfad+"monthly\"+$monthly+".csv"  

foreach ($PC in $Gruppe_Status)
{
if [...Hier stehen einige Abfragen]
{
    $Check_now =$pc.Name
[hier stehen noch ein paar abfragen und am Ende kommt dann]
    $Check_now >> $daily_log
    $Rechner= @{
    Name = $Check_now
    Datum = $daily
    }
    $Rechner | Export-Csv -Path $monthly_log -Append -Encoding UTF8
}
}

Es klappt alles wie es soll. In die tägliche log-Datei wird ausschließlich der PC Name geschrieben. In die Monatliche log-Datei soll ein wenig mehr. Ich habe das hier (und zum Test bei mir) auf die 2 einfachen Werte reduziert. Nämlich den PC-Namen aus $Check_now und das aktuelle Datum aus $daily.

Führe ich das ganze im PS aus, so erhalte ich:
Name Value
-----
Name PC-Name
Datum 01.12.2021

In der SCV steht dann allerdings nur:
False,"False","False","System.Collections.Hashtable+KeyCollection","System.Collections.Hashtable+ValueCollection","System.Object","2"

Und das ganze geht grade nicht in meinen Kopf rein. Also hab ich recherchiert. Laut MS https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ... unter Beispiel 12 habe ich es exakt so gemacht, wie es sein sollte. muss also ein grundsätzlichen Problem sein, was ich grade durch das Brett vor meinem Kopf nicht sehe.

Vielleicht hat jemand eine Zange um den Nagel, der das Brett festhält zu entfernen.

Gruß
Doskias

Content-ID: 1576125907

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

Ausgedruckt am: 21.11.2024 um 14:11 Uhr

149569
Lösung 149569 01.12.2021 aktualisiert um 16:14:56 Uhr
Goto Top
Das Beispiel in der Doku ist leider fehlerbehaftet.
Vielleicht hat jemand eine Zange um den Nagel, der das Brett festhält zu entfernen.
Nagel zieh ... Du hast vergessen deine Hashtable in ein Custom-Object zu konvertieren und den -NoTypeInformation Parameter sollte man ebenfalls setzen möchte man keine Typ-Informationen im Header der CSV haben face-wink
$Rechner = [pscustomobject]@{
    Name = $Check_now
    Datum = $daily
}
$Rechner | Export-Csv -Path $monthly_log -Append -Encoding UTF8 -NoTypeInformation
Doskias
Doskias 02.12.2021 um 11:35:51 Uhr
Goto Top
Moin,

notypeonformation hatte ich schon drin, aber für die vollständige Lösung sicher richtig es nochmal zu erwähnen.

Danke und Gruß
Doskias