Powershell export to csv?
Hallo, ich habe ein Problem und zwar habe ich eine Abfrage für Postfachberechtigungen erstellt aller User und diese wird auch richtig ausgegeben und passend angezeigt. Allerdings beim Export des Skripts in CSV werden als Bsp.
AccessRights=FullAccess, ReadPermission} ausgegeben.
Dabei möchte ich AccessRights als Header und darunter die entsprechenden Berechtigungen. Das gleiche ist bei Identity und User der Fall. Skript sieht wie folgt aus:
$Postfach = Get-Mailbox -ResultSize Unlimited | Where-Object { $_.PrimarySmtpAddress -like "*.de" } | Select-Object DisplayName, UserPrincipalName
foreach($User in $Postfach) {
Get-MailboxPermission $User.UserPrincipalName | Select Identity,User,@{name="AccessRights";expression={ [string]::join(",",@($_.accessrights)) }} | Add-Content c:\Beispiel.csv
}
Bitte um Hilfe
1 Antwort
Vielleicht "Export-Csv" statt "Add-Content" verwenden.
$Postfach = Get-Mailbox -ResultSize Unlimited | Where-Object { $_.PrimarySmtpAddress -like "*.de" } | Select-Object DisplayName, UserPrincipalName
$ErgebnisListe = @() # Initialisiere eine leere Liste
foreach($User in $Postfach) {
$Ergebnis = Get-MailboxPermission $User.UserPrincipalName | Select Identity,User,@{name="AccessRights";expression={ [string]::join(",",@($_.accessrights)) }}
$ErgebnisListe += $Ergebnis # Füge das Ergebnis zur Liste hinzu
}
$ErgebnisListe | Export-Csv -Path c:\Beispiel.csv -NoTypeInformation -Delimiter ";"
Ne, hatte ich selbst bereits probiert. Habe die Lösung aber gefunden.
$Postfach = Get-Mailbox -ResultSize Unlimited | Where-Object { $_.PrimarySmtpAddress -like "*.de" } | Select-Object DisplayName, UserPrincipalName, AccessRights
foreach($User in $Postfach) {
Get-MailboxPermission $User.UserPrincipalName | Select Identity,User,@{name="AccessRights";expression={ [string]::join(",",@($_.accessrights)) }} | Add-Content Beispiel.csv
}
(Get-Content -Path c:\Beispiel.csv -Raw).Replace("@{Identity="," ").Replace("User="," ").Replace("AccessRights="," ").Replace("}"," ") | Set-Content c:\Beispiel2.csv