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

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

Printed on: April 26, 2024 at 23:04 o'clock

Mitglied: 149569
Solution 149569 Dec 01, 2021 updated at 15:14:56 (UTC)
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
Member: Doskias
Doskias Dec 02, 2021 at 10:35:51 (UTC)
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