garciam
Goto Top

Kalenderberechtigungen auslesen

Hallo

Ich müsste von allen Kalendern die Standard-Berechtigung auslesen können und in eine CSV-Datei exportieren. Folgendes Script habe ich gefunden das grundsätzlich funktionieren würde, nur dass es keinen Export vorsieht.
$MBXs = Get-Mailbox -ResultSize unlimited

foreach ($MBX in $MBXs) {
	Get-MailboxFolderPermission "$($mbx.alias):\Kalender"  | ? { $_.user -like "Default"} | select @{n="SamAccountName";e={$mbx.SamAccountName}},@{n="DisplayName";e={$mbx.DisplayName}},@{n="OrganizationalUnit";e={$mbx.OrganizationalUnit}},AccessRights  
}
Kann mir da jemand weiterhelfen, vielen Dank!

Gruss

Content-Key: 289464

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

Ausgedruckt am: 29.03.2024 um 15:03 Uhr

Mitglied: 122990
122990 26.11.2015 aktualisiert um 18:32:14 Uhr
Goto Top
Einfach noch ein Export-CSV an Zeile 4 mit hinten dranhängen:
$MBXs = Get-Mailbox -ResultSize unlimited
foreach ($MBX in $MBXs) {
	Get-MailboxFolderPermission "$($mbx.alias):\Kalender"  | ? { $_.user -like "Default"} | select @{n="SamAccountName";e={$mbx.SamAccountName}},@{n="DisplayName";e={$mbx.DisplayName}},@{n="OrganizationalUnit";e={$mbx.OrganizationalUnit}},AccessRights | Export-CSV 'c:\rechte.csv' -NoType -Delimiter ';' -Encoding UTF8 -Append  
}
Gruß grexit
Mitglied: garciam
garciam 26.11.2015 um 17:36:20 Uhr
Goto Top
Hallo Grexit
Danke für deine Antwort, aber wenn ich den Export über eine Pipe hinten anhänge, erhalte ich einen Error .
An empty pipe element is not allowed.
At C:\temp\MGR\AllCalendarPermissions.ps1:6 char:4
+ } | <<<<  export-csv "C:\rechte.csv" -NoType -delimiter ";" -Encoding UTF8  
    + CategoryInfo          : ParserError: (:) , ParseException
    + FullyQualifiedErrorId : EmptyPipeElement

Gruss
Mitglied: 122990
122990 26.11.2015 um 18:33:28 Uhr
Goto Top
Update oben, sorry.
Mitglied: garciam
garciam 27.11.2015 aktualisiert um 09:41:20 Uhr
Goto Top
Danke für deine Hilfe, aber bei mir funktioniert es nicht, es wird nichts in das CSV-File geschrieben, stattdessen bekomme ich Errors.
The operation couldn't be performed because 'User:\Kalender' couldn't be found.  
    + CategoryInfo          : NotSpecified: (:) [Get-MailboxFolderPermission], ManagementObjectNotFoundException
    + FullyQualifiedErrorId : 90F8BC86,Microsoft.Exchange.Management.StoreTasks.GetMailboxFolderPermission

In der Zwischenzeit habe ich bemerkt, dass manche Mitarbeiter unter :\Kalender zu finden sind, andere unter :\Calendar. Deshalb wird wohl auch der oben aufgeführte Error ausgegeben. Die andere hälfte der Mitarbeiter müsste dann aber doch im CSV-File stehen, wenn das Script korrekt funktionieren würde? Lasse ich den Export-Teil im Script weg, bekomme ich eine schöne Auflistung der Mitarbeiter bei denen der :\Kalender übereinstimmt.

Gruss
Mitglied: 114757
114757 27.11.2015 aktualisiert um 09:01:53 Uhr
Goto Top
Moin,
In der Zwischenzeit habe ich bemerkt, dass manche Mitarbeiter unter :\Kalender zu finden sind, andere unter :\Calendar
an den lokalisierten Namen des Kalenders kommst du so:
$foldername = [string](Get-mailboxfolderstatistics $mbx -folderscope calendar).Name
Einfach mit in die Schleife einbauen und die Variablen an der entsprechenden Stelle einbauen face-wink

Gruß jodel32
Mitglied: garciam
garciam 27.11.2015 um 10:02:49 Uhr
Goto Top
Hallo jodel32
Danke! Einfach mit in die Schleife einbauen? So einfach ist das für mich aber nicht face-sad Mal schauen ob ich das hinbekomme...
Gruss
Mitglied: colinardo
Lösung colinardo 27.11.2015, aktualisiert am 30.11.2015 um 08:17:48 Uhr
Goto Top
Hallo garciam,
zusammengesetzt sieht das so aus:
$file = 'C:\rechte.txt'  
(Get-Mailbox -ResultSize Unlimited) | %{
    $box = $_
    $cal = [string](Get-mailboxfolderstatistics $box -folderscope calendar).Name
    Get-MailboxFolderPermission "$($box.alias):\$cal" -User Default -EA SilentlyContinue | select @{n="SamAccountName";e={$box.SamAccountName}},@{n="DisplayName";e={$box.DisplayName}},@{n="OrganizationalUnit";e={$box.OrganizationalUnit}},@{n="AccessRights";e={$_.AccessRights -join ','}}  
} | export-csv $file -NoType -Delimiter ";" -Encoding UTF8  
Grüße Uwe
p.s. wurde natürlich getestet, läuft einwandfrei..
Mitglied: garciam
garciam 30.11.2015 um 08:17:27 Uhr
Goto Top
Hallo colinardo

Da reichen meine minimen Kenntnisse leider nicht aus. Vielen Dank für das fix-fertige Script und es funktioniert perfekt!

Gruss