none
AddUsersToPFRecursive Problem with multiple rights RRS feed

  • Frage

  • Hi there,

    I want do use the Exchange script AddUsersToPFRecursive.ps1 to apply some accessrights to multiple folders at the same time. My server ist exchange 2007 sp3 ur6

    My command line looks like:

    AddUsersToPFRecursive.ps1 -TopPublicFolder "\Projects\test123" -User "test123" -Permissions {CreateItems, ReadItems}

    But I got the following error (german):

    Add-PublicFolderClientPermission : Der Parameter "AccessRights" kann nicht gebu
    nden werden. Der Wert "CreateItems, ReadItems" kann nicht in den Typ "Microsoft
    .Exchange.Management.MapiTasks.PublicFolderAccessRight" konvertiert werden. Feh
    ler: "Das angegebene Argument liegt außerhalb des gültigen Wertebereichs.
    Parametername: Die Eingabezeichenfolge 'CreateItems, ReadItems' ist keine gülti
    ge Berechtigung oder Funktion für einen Öffentlichen Ordner. Zu den gültigen Be
    rechtigungen gehören ReadItems, CreateItems, EditOwnedItems, DeleteOwnedItems,
    EditAllItems, DeleteAllItems, CreateSubfolders, FolderOwner, FolderContact, Fol
    derVisible. Zu den gültigen Funktionen gehören Owner, PublishingEditor, Editor,
    PublishingAuthor, Author."
    Bei AddUsersToPFRecursive.ps1:142 Zeich
    en:111
    +     add-PublicFolderClientPermission -identity $_.Identity -user $user -serve
    r $_.OriginatingServer -AccessRights <<<<  $Permissions ;
        + CategoryInfo          : InvalidArgument: (:) [Add-PublicFolderClientPerm
       ission], ParameterBindingException
        + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Exchang
       e.Management.MapiTasks.AddPublicFolderClientPermission

    (In english: CreateItems, ReadItems' is not a correct access right or function for a public folder)

    So my question is: What is the correct syntax zu specify multiple access rights ?

    If I enter only one access right (for example -Permissions {CreateItems) it works. Also if I combine multiple Roles (for example -Permissions {Owner, Publisher} it works. Only the combination of serveral accessrights brings this error.

    Any tip ?

    Thank you, Andreas.
    Mittwoch, 7. November 2012 13:55

Antworten

  • Hallo Andi,

    das ist doch ein Script, dass im Klartext vorliegt. Schau doch einfach mal da rein. ;)

    Nein, mit dem Script kann man nicht mehrere Berechtigungen gleichzeitig setzen.

    Das Script nimmt alle vorhandenen Berechtigungen raus und setzt dann die übergebene als einzige neu rein.

    Add-PublicFolderClientPermission, das an dieser Stelle ausgeführt wird, nimmt für AccessRights aber kein Array entgegen, sondern nur einen einzelnen Wert.

    Um mehrere Berechtigungen zu setzen, muss Add-PublicFolderClientPermission also mehrfach ausgeführt werden. Das macht das Script aber nicht.

    Die Rekursion musst Du also selbst bauen oder das vorhandene Script anpassen.


    Grüße aus Berlin schickt Robert
    MVP Exchange Server
    • Als Antwort markiert Alex Pitulice Montag, 3. Dezember 2012 10:18
    Sonntag, 11. November 2012 16:32

Alle Antworten

  • Hi apfelkuchen232,

    hast du mal die geschweiften Klammern weggelassen?

    Die Trennung findet eigentlich nur durch das Komma statt...


    Viele Grüße
    Christian

    Donnerstag, 8. November 2012 07:21
    Moderator
  • Hi,

    ich hab nun mal die Klammern weggelassen.

    Wenn ich eingebe:

    AddUsersToPFRecursive.ps1 -TopPublicFolder "\Projekte\test"
    -User "testgroup" -Permissions CreateItems, ReadItems

    kommt:

    Add-PublicFolderClientPermission : Der Parameter "AccessRights" kann nicht gebu
    nden werden. Der Wert "CreateItems ReadItems" kann nicht in den Typ "Microsoft.
    Exchange.Management.MapiTasks.PublicFolderAccessRight" konvertiert werden. Fehl
    er: "Der angeforderte Wert "CreateItems ReadItems" konnte nicht gefunden werden
    ."
    Bei C:\Program Files\Microsoft\Exchange Server\Scripts\AddUsersToPFRecursive.ps
    1:135 Zeichen:82
    +     add-PublicFolderClientPermission -identity $_.Identity -user $user -Acces
    sRights <<<<  $Permissions -server $_.OriginatingServer;
        + CategoryInfo          : InvalidArgument: (:) [Add-PublicFolderClientPerm
       ission], ParameterBindingException
        + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Exchang
       e.Management.MapiTasks.AddPublicFolderClientPermission

    In der Fehlermeldung fehlt das Komma bei "CreateItems, ReadItems" komischerweise. Vielleicht ist das das Problem ? Ich habs mal versucht, mit \, zu escapen, dann kommt in der Fehlermeldung "Der Wert "CreateItems\ ReadItems" kann nicht in den Typ...."

    Gruß, Andy.

    Samstag, 10. November 2012 10:04
  • Hallo Andi,

    das ist doch ein Script, dass im Klartext vorliegt. Schau doch einfach mal da rein. ;)

    Nein, mit dem Script kann man nicht mehrere Berechtigungen gleichzeitig setzen.

    Das Script nimmt alle vorhandenen Berechtigungen raus und setzt dann die übergebene als einzige neu rein.

    Add-PublicFolderClientPermission, das an dieser Stelle ausgeführt wird, nimmt für AccessRights aber kein Array entgegen, sondern nur einen einzelnen Wert.

    Um mehrere Berechtigungen zu setzen, muss Add-PublicFolderClientPermission also mehrfach ausgeführt werden. Das macht das Script aber nicht.

    Die Rekursion musst Du also selbst bauen oder das vorhandene Script anpassen.


    Grüße aus Berlin schickt Robert
    MVP Exchange Server
    • Als Antwort markiert Alex Pitulice Montag, 3. Dezember 2012 10:18
    Sonntag, 11. November 2012 16:32
  • Hallo Robert,

    ah okay, dann weiß ich Bescheid. Ich dachte, ich würde irgendwas falsch machen, aber wenn das Skript nicht für mehrere Rechte ausgelegt ist, dann werde ich wohl selber Hand anlegen müssen.

    Danke und Gruß,

    Andy.

    Freitag, 16. November 2012 18:38