Add Public Folder Client Permissions ersetzen
Hallo liebe Community,
Im Einsatz ist Exchange Online mit Office 365
mit folgendem Befehl habe ich erfolgreich die Berechtigungen für den Standard Benutzer gesetzt.
Get-PublicFolder “\XXX“ –recurse | Add-PublicFolderClientPermission –User Standard –AccessRights Author
Leider habe ich zu spät gesehen, dass Author keine Berechtigung hat, Unterordner zu erstellen, sondern nur der PublishingAuthor.
Jetzt lassen sich diese aber nicht so einfach "überschreiben". Es kommt immer folgende Fehlermeldung:
Für den Benutzer wurde ein vorhandener Berechtigungseintrag gefunden:
1. Muss ich den Benutzer die Rechte entziehen und erneut den Befehl absetzen mit PublishingAuthor?
Und wie funktioniert das? Mit ( Get-PublicFolder “\XXX“ –recurse |Remove-PublicFolderClientPermission –User Standard –AccessRights Author) klappt das leider nicht, da erhalte ich folgende Fehlermeldung:
Cannot process argument transformation on parameter 'Identity'. Cannot convert value "-AccessRights" to type "Microsoft
.Exchange.Configuration.Tasks.PublicFolderIdParameter". Error: "Der für Parameter "-AccessRights" bereitgestellte Wert
liegt nicht im richtigen Format vor. Das richtige Format lautet "<OrganizationName>\\<FolderPath>"."
+ CategoryInfo : InvalidData: ( [Remove-PublicFolderClientPermission], ParameterBindin...mationExceptio
n
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Remove-PublicFolderClientPermission
und ich habe noch keine Möglichkeit gefunden die Berechtigungen recursive wieder wegzunehmen...
2. Oder kann ich die Benutzerrechte einfach ersetzen und wenn ja, wie?
Hatte dazu ein Powershell Script gefunden und wollte dies ausführen:
ReplaceUserPermissionOnPFRecursive.ps1 -TopPublicFolder "\XXX" -User "Standard" -Permissions PublishingAuthor
Dann erhalte ich folgende Fehlermeldung:
Die Benennung "ReplaceUserPermissionOnPFRecursive.ps1" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptd
atei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt is
t (sofern enthalten), und wiederholen Sie den Vorgang.
Bei C:\Powershell\berechtigung.ps1:1 Zeichen:39
+ FullyQualifiedErrorId : CommandNotFoundException
Kann mir jemand bitte helfen??
Im Einsatz ist Exchange Online mit Office 365
mit folgendem Befehl habe ich erfolgreich die Berechtigungen für den Standard Benutzer gesetzt.
Get-PublicFolder “\XXX“ –recurse | Add-PublicFolderClientPermission –User Standard –AccessRights Author
Leider habe ich zu spät gesehen, dass Author keine Berechtigung hat, Unterordner zu erstellen, sondern nur der PublishingAuthor.
Jetzt lassen sich diese aber nicht so einfach "überschreiben". Es kommt immer folgende Fehlermeldung:
Für den Benutzer wurde ein vorhandener Berechtigungseintrag gefunden:
1. Muss ich den Benutzer die Rechte entziehen und erneut den Befehl absetzen mit PublishingAuthor?
Und wie funktioniert das? Mit ( Get-PublicFolder “\XXX“ –recurse |Remove-PublicFolderClientPermission –User Standard –AccessRights Author) klappt das leider nicht, da erhalte ich folgende Fehlermeldung:
Cannot process argument transformation on parameter 'Identity'. Cannot convert value "-AccessRights" to type "Microsoft
.Exchange.Configuration.Tasks.PublicFolderIdParameter". Error: "Der für Parameter "-AccessRights" bereitgestellte Wert
liegt nicht im richtigen Format vor. Das richtige Format lautet "<OrganizationName>\\<FolderPath>"."
+ CategoryInfo : InvalidData: ( [Remove-PublicFolderClientPermission], ParameterBindin...mationExceptio
n
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Remove-PublicFolderClientPermission
und ich habe noch keine Möglichkeit gefunden die Berechtigungen recursive wieder wegzunehmen...
2. Oder kann ich die Benutzerrechte einfach ersetzen und wenn ja, wie?
Hatte dazu ein Powershell Script gefunden und wollte dies ausführen:
ReplaceUserPermissionOnPFRecursive.ps1 -TopPublicFolder "\XXX" -User "Standard" -Permissions PublishingAuthor
Dann erhalte ich folgende Fehlermeldung:
Die Benennung "ReplaceUserPermissionOnPFRecursive.ps1" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptd
atei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt is
t (sofern enthalten), und wiederholen Sie den Vorgang.
Bei C:\Powershell\berechtigung.ps1:1 Zeichen:39
ReplaceUserPermissionOnPFRecursive.ps1 <<<< -TopPublicFolder "\XXX" -User "Standard" -Permissions PublishingAuthor
+ CategoryInfo : ObjectNotFound: (ReplaceUserPermissionOnPFRecursive.ps1:String) , CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException
Kann mir jemand bitte helfen??
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 279855
Url: https://administrator.de/forum/add-public-folder-client-permissions-ersetzen-279855.html
Ausgedruckt am: 23.12.2024 um 14:12 Uhr
22 Kommentare
Neuester Kommentar
Die Standard-Berechtigung vorher wieder mit Remove-PublicFolderClientPermission entfernen und dann wieder hinzufügen. Geht hier einwandfrei.
Du hast ja auch den Ordnernamen bei Remove-Public.... vergessen
Öffentliche Ordner Berechtigungen - Exchange 2013
Gruß jodel32
Du hast ja auch den Ordnernamen bei Remove-Public.... vergessen
Öffentliche Ordner Berechtigungen - Exchange 2013
Die Benennung "ReplaceUserPermissionOnPFRecursive.ps1" wurde nicht als Name eines Cmdlet, einer Funktion,
Und hier warst du einfach nur im falschen Pfad .... und hast nicht den kompletten Pfad zum Skript angegeben !Gruß jodel32
Zitat von @c64b311ee9:
Hallo Jodel32,
ja das Problem dabei ist, dass ich so (Remove-PublicFolderClientPermission -Identity "XXX" -User Standard -AccessRights
Author)
nur einen einzelnen Ordner die Berechtigung entziehen kann. Wir haben ca 250 Ordner mit Unterordnern. Deshalb würde ich gerne
den recursive Befehl dabei haben.
Schon mal was von einer Foreach-Schleife und der Laufvariablen $_ gehört ?Hallo Jodel32,
ja das Problem dabei ist, dass ich so (Remove-PublicFolderClientPermission -Identity "XXX" -User Standard -AccessRights
Author)
nur einen einzelnen Ordner die Berechtigung entziehen kann. Wir haben ca 250 Ordner mit Unterordnern. Deshalb würde ich gerne
den recursive Befehl dabei haben.
Hiermit entfernst du die Berechtigungen wieder rekursiv
Dann kann du sie wieder hinzufügen.
Get-PublicFolder "\Verwaltung" -Recurse | %{Remove-PublicFolderClientPermission $_.Identity -User Standard -AccessRights Author -Confirm:$false}
Get-PublicFolder "\Verwaltung" -Recurse | Add-PublicFolderClientPermission -User Standard -AccessRights PublishingAuthor
Das hat leider noch nicht geklappt:
Geht hier wie immer einwandfrei !! Du musst einfach grundsätzlich was falsch machen.Lässt sich aber auch so schreiben:
Get-PublicFolder "\Verwaltung" -Recurse | Remove-PublicFolderClientPermission -User Standard -AccessRights Author -Confirm:$false
Ich würde deinen Befehl auch gerne verstehen. Kannst du das evtl. nochma genauer erklären mit dem % $_-Identity?
%{} ist eine Foreach-Schleife und $_.Identitiy greift auf die Eigenschaft Identity in die in diesem Fall den Pfad zum öffentlichen Ordner enthält zu welche zum aktuellen Objekt in der Pipeline aufgelöst wird.Du brauchst erst mal einen Powershell-Grundkurs bevor du dich an einen Exchange wagst ...
Und natürlich macht man das immer vorher erst an einem Testsystem!
Letzter Versuch:
Sehe gerade bei Exch 2013 gibt es den Parameter -AccessRights nicht mehr, vermutlich hat er deswegen gemeckert.
Get-PublicFolder "\Verwaltung" -Recurse | %{Remove-PublicFolderClientPermission -Identity $_.Identity -User Standard -Confirm:$false}
Zitat von @c64b311ee9:
Ja das Problem ist, dass ein lokaler Exchange sich doch wieder total anders verhält (siehe jetzt gerade)
Nope mache ich ja jetzt gerade auf einem Ex Online, und das hier läuft bei dir auch nicht?Ja das Problem ist, dass ein lokaler Exchange sich doch wieder total anders verhält (siehe jetzt gerade)
Get-PublicFolder "\Verwaltung" -Recurse | Remove-PublicFolderClientPermission -User Standard -Confirm:$false
Hmm okay, aber die Rechtevergabe hatte ja auch mit AccessRights funktioniert?
Nein, nur beim Remove-.... CMDLet gibts den Parameter nicht mehr.Zitat von @c64b311ee9:
das ist die Lösung. Bei Exchange 2016 ist wohl Standard in default geändert worden.
Exchange 2016 dat ist noch jarnich raus das ist die Lösung. Bei Exchange 2016 ist wohl Standard in default geändert worden.
Da ist nicht geändert worden, aber wenn System bzw die Mailbox auf Englisch konfiguriert ist, ist das klar
Zitat von @c64b311ee9:
ja aber bei exchange online ist unter der haube schon ein 2016er im einsatz, deshalb.
Hast du das mit Get-ExchangeServer überprüft? Das wäre sehr sehr ungewöhnlich das die das so früh auf die produktiven User loslassen ...ja aber bei exchange online ist unter der haube schon ein 2016er im einsatz, deshalb.
Gibt ja noch nicht mal eine RTM vom neuen ...
Naja zuzutrauen wärs den luppen ja, genauso wie sie Windows 10 unfertig mit all seinen Bugs released haben.
ne das Cmdlet gibt es so auch nicht mehr.
Gibt's schon noch, nur im kastrierten EX Online wieder nicht, hab's gerade gesehen.ist doch super
Naja, wer sich als Versuchskaninchen mit seinen Daten bei MS wohl fühlt, bitte.