Exchange, auf Ordner und Unterordner in einem Postfach Berechtigungen vergeben

Bsp.: Bei Max Müller sollte eine Postfach (technik@[…]) über Ordner freigaben freigegeben werden. Da die Ordner schon alle erstellt wurde, müsste man überall manuell die Rechte auf den Unterordnern einfügen. Das Postfach hat alle normalen Ordner und einen angelegten Ordner (Eingangsrechnungen mit Unterordnern).

Wenn man die ps1 Datei ausführt, wird man zuerst nach dem Postfach gefragt, auf dem die Rechte hinzugefügt werden sollen. Danach das Postfach welches hinzugefügt werden soll und dann die Ordner, in dem Bsp. ist es „/Eingangsrechnungen/“. Dann werden die rechte auch schon auf die Unterordner vergeben. (im Skript stehen sonst auch Hinweise drin)

Exchange Postfach – Nachträgliche Rechtevergabe auf Ordner (und deren Unterordner)

oder

Der Code (man darf nur die Recht verändern “ -AccessRights Editor“ zu Owner, etc. )

<#
.SYNOPSIS
Mit Hilfe dieses Scripts können im Nachhinein Rechte auf bestimmte Ordner UND Unterordner in Outlook vergeben werden.
.PARAMETER AffectedMailbox
Hier das Postfach bestimmen, aus welchem Ordnerrechte geändert werden sollen. Format: (user@domain.de)
.PARAMETER UserWhoGetsRights
Benutzer/Mailbox definieren, die nun Rechte bekommt auf das bestimmte Postfach. Format: (user@domain.de)
.PARAMETER PathOfTheFolder
Pfad des bestimmten Ordners (Format: /Posteingang/Ordner/Unterordner)
.EXAMPLES
ohne Parameter: „.\Add-Inheritet-Rights.ps1“
mit Parameter: „.\Add-Inheritet-Rights.ps1 -AffectedMailbox=“a@b.com“ -UserWhoGetsRights=“d@e.com“ -PathOfTheFolfer=“/Inbox“

>

Param
(
[string]$AffectedMailbox,
[string]$UserWhoGetsRights,
[string]$PathOfTheFolder
)

Write-Host „Exchange Snapin Loading….“
Add-PSSnapin Microsoft.Exchange.Management.Powershell.Snapin
Write-Host „Exchange Snapin Loaded.“
Write-Host „“
Write-Host „=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-„
Write-Host „Script für Vererbbare Rechte – (c) by cloud4you.biz -=-=-=-=-=-=-=-=-=-=-=-„
Write-Host „=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-„
Write-Host „“
If ($AffectedMailbox -eq „“)
{
$AffectedMailbox = Read-Host „Auf welchem Postfach werden neue Rechte hinzugefügt? (Format: user@domain.de)“
}
Write-Host „“
$GetMailbox = Get-Mailbox $AffectedMailbox
Write-Host „Zutreffende Postfächer:“ $GetMailbox.Length
Write-Host „“
If ($GetMailbox.Length -eq 1)
{
If ($UserWhoGetsRights-eq „“)
{
$UserWhoGetsRights = Read-Host „Welcher Benutzer bekommt in dem Postfach Rechte? (Format: user@domain.de)“
}
Write-Host „“
$GetMailbox = Get-Mailbox $UserWhoGetsRights
Write-Host „Zutreffende Postfächer:“ $GetMailbox.Length
Write-Host „“
If ($GetMailbox.Length -eq 1)
{
If ($PathOfTheFolder -eq „“)
{
$PathOfTheFolder = Read-Host „Und nun benötige ich den Pfad (Format: /Posteingang/Ordner/Unterordner)“
}
$GetFolders = Get-MailboxFolderStatistics -identity $AffectedMailbox | WHERE {$_.FolderPath.Contains($PathOfTheFolder) -eq $true}
If ($GetFolders.Length -gt 0)
{
ForEach($folder in (Get-MailboxFolderStatistics -identity $AffectedMailbox | WHERE {$_.FolderPath.Contains($PathOfTheFolder) -eq $true} ) )
{
$foldername = $AffectedMailbox + “:” + $folder.FolderPath.Replace(“/”,”\”);
Add-MailboxFolderPermission $foldername -User $UserWhoGetsRights -AccessRights Editor
}
Write-Host „“
Write-Host $GetFolders.Length „Ordner wurden bearbeitet“
}
Else
{
Write-Host „“
Write-Host „Es wurden keine Ordner unter diesem Pfad gefunden.“
}
}
Else
{
Write-Host „“
Write-Host „Der Benutzer wurde nicht gefunden oder war nicht eindeutig.“
}
}
Else
{
Write-Host „“
Write-Host „Das Postfach wurde nicht gefunden oder war nicht eindeutig.“
}
Write-Host „“
$Unnoetig = Read-Host „Drück Eingabe“

a.rohwedder has written 12 articles