Jump to content

Mehrere Postfachberechtigungen auslesen


Direkt zur Lösung Gelöst von massaraksch,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo,

 

ich habe hier ein kleines Script mit dem ich mir die Berechtigungen aller Posteingänge und Kalender innerhalb einer Firma auslesen möchte.
Alle Postfächer sind dazu vorher ausgelesen und in einer Datei gespeichert worden.
 

$hilfe = Get-Content "C:\temp\PostfacherUebersicht.txt"
$Berechtigungsuebersicht = "C:\temp\Postfachberechtigungen.txt"
Remove-Item -Path $Berechtigungsuebersicht -force -ErrorAction SilentlyContinue
New-item -Path $Berechtigungsuebersicht -ItemType File -ErrorAction SilentlyContinue
$logfile = "C:\temp\log-Postfachberechtigungen.txt"
Remove-Item -Path $logfile -force -ErrorAction SilentlyContinue
New-item -Path $logfile -ItemType File -ErrorAction SilentlyContinue

foreach ($element in $hilfe)
    {

    "$element verarbeitet" | Add-content $Berechtigungsuebersicht
    " " | Add-content $Berechtigungsuebersicht
    
    "Posteingang:" | Add-content $Berechtigungsuebersicht
    " " | Add-content $Berechtigungsuebersicht
    Get-MailboxFolderPermission -Identity '$element:\Posteingang' |ft -AutoSize >> $Berechtigungsuebersicht
    " " | Add-content $Berechtigungsuebersicht
    
    "Kalender:" | Add-content $Berechtigungsuebersicht
    " " | Add-content $Berechtigungsuebersicht
    Get-MailboxFolderPermission -Identity '$element:\Kalender' |ft -AutoSize >> $Berechtigungsuebersicht 
    " " | Add-content $Berechtigungsuebersicht
    " " | Add-content $Berechtigungsuebersicht

    "$element verarbeitet" | Add-content $logfile
   }

 

Die Ausgabe ist soweit in Ordnung. nur das er mit die beiden wichtigsten Zeilen nicht ausgibt.

Also die beiden Zeilen get-mailboxfolderpermission.  Durch das Hochkommata verwendet er nicht den Wert der Variablen sondern die Variable, sucht also nicht BenutzerABC sondern element, das es natürlich nicht gibt.

Sobald ich das ganze in normale Anführungszeichen setze, stört er sich am Doppelpunkt.

 

Der Befehl an sich funktioniert, wenn ich feste Werte eingebe.


Wie kann ich mein Problem lösen.

 

Danke

Thomas
 

bearbeitet von Alith Anar
Geschrieben

Ohne auf den Rest Deines Codes einzugehen ... Du könntest Dir den String/Wert für "-Identity" vorher zusammenbauen und dann als komplette Variable übergeben:

$Identity = '{0}:\Posteingang' -f $element
Get-MailboxFolderPermission -Identity $Identity

 

  • Danke 1
Geschrieben (bearbeitet)

Die Variante von BOfH_666 schaue ich mir heute abend noch an.
Habs jetzt mit der Version von massaraksch umgesetzt.

Noch ein bisschen die Ausgabe angepasst.

 

$hilfe = Get-Content "C:\temp\PostfacherUebersicht.txt"
$Berechtigungsuebersicht = "C:\temp\Postfachberechtigungen.txt"
Remove-Item -Path $Berechtigungsuebersicht -force -ErrorAction SilentlyContinue
New-item -Path $Berechtigungsuebersicht -ItemType File -ErrorAction SilentlyContinue
$logfile = "C:\temp\log-Postfachberechtigungen.txt"
Remove-Item -Path $logfile -force -ErrorAction SilentlyContinue
New-item -Path $logfile -ItemType File -ErrorAction SilentlyContinue

foreach ($element in $hilfe)
   {
    "$element verarbeitet" | Add-content $Berechtigungsuebersicht
    " " | Add-content $Berechtigungsuebersicht
    "Posteingang:" | Add-content $Berechtigungsuebersicht
    Get-MailboxFolderPermission -Identity $element':\Posteingang' |ft -AutoSize -HideTableHeaders >> $Berechtigungsuebersicht
    Get-MailboxFolderPermission -Identity $element':\Inbox' |ft -AutoSize -HideTableHeaders >> $Berechtigungsuebersicht
    "Kalender:" | Add-content $Berechtigungsuebersicht
    Get-MailboxFolderPermission -Identity $element':\Kalender' |ft -AutoSize -HideTableHeaders >> $Berechtigungsuebersicht 
    Get-MailboxFolderPermission -Identity $element':\Calendar' |ft -AutoSize -HideTableHeaders >> $Berechtigungsuebersicht 
    " " | Add-content $Berechtigungsuebersicht

    "$element verarbeitet" | Add-content $logfile
   }

 

 

Danke für die Hilfe.

bearbeitet von Alith Anar
Geschrieben
vor 4 Stunden schrieb Alith Anar:
'$element:\Posteingang'

 

Mit den einfachen Anführungszeichen verhinderst Du die Auflösung der Variablen. Da sich bei doppelten Powershell aber am ":" verschluckt, gibt es diese Schreibweise:

"$($element):\Posteingang"

  • Like 2
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...