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:
[hier stehen noch ein paar abfragen und am Ende kommt dann]
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
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
$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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1576125907
Url: https://administrator.de/contentid/1576125907
Ausgedruckt am: 21.11.2024 um 14:11 Uhr
2 Kommentare
Neuester Kommentar
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 $Rechner = [pscustomobject]@{
Name = $Check_now
Datum = $daily
}
$Rechner | Export-Csv -Path $monthly_log -Append -Encoding UTF8 -NoTypeInformation