berlinger
Goto Top

Exchange 2010 vRTM (ohne SP1) Kalender per PowerShell freigeben

Hallo meine lieben Leute

ich versuche verzweifelt per PowerShell alle Kalender im Unternehmen freizugeben.
Dazu habe ich ein PowerShell Command gefunden....:

get-mailbox * | foreach-object {Add-MailboxFolderPermission $_":Kalender" -User Default -PublishingAuthor}

Durch ":Kalender" sollte mein Deutsches System unterstützt werden und durch "-PublishingAuthor" auch die von mir gewünschte Berechtigung gesetzt werden.

Tja, leider geht dies aber nicht so wie gewünscht... beim Ausführen erhalte ich folgende Fehlermeldung:

Die Argumenttransformation für den Parameter "Identity" kann nicht verarbeitet werden. Der Wert "MaxMustermann-XXXX:Kal
ender" kann nicht in den Typ "Microsoft.Exchange.Configuration.Tasks.MailboxFolderIdParameter" konvertiert werden. Fehl
er: "Die Postfachordneridentität "MaxMustermann-XXXX:Kalender" hat nicht das ordnungsgemäße Format. Das ordnungsgemäß F
ormat ist wie folgt: "<Postfachidentität>: <Ordnerpfad>". "
+ CategoryInfo : InvalidData: (face-smile [Add-MailboxFolderPermission], ParameterBindin...mationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Add-MailboxFolderPermission

Wie im titel beschrieben handelt es sich um einern 2010er ohne SP1 auf einem 2008R2 System...

bevor ich keine Haare auf dem Kopf mehr habe, hoffe ich nun auf Eure Hilfe...

Liebe Grüsse

Content-Key: 196280

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

Printed on: April 27, 2024 at 03:04 o'clock

Member: Onitnarat
Onitnarat Dec 27, 2012 at 14:31:44 (UTC)
Goto Top
Hi berlinger,
ich glaube da ist ein Syntaxfehler drin:

1. fehlender Slash:
$_":\Kalender"

2. fehlender Parameter:
-AccessRights PublishingAuthor

Give it a try...
Marcus
Member: berlinger
berlinger Dec 27, 2012 at 14:52:53 (UTC)
Goto Top
Hi Onitnarat

danke für Deine hilfe...

Sieht schon besser aus... bekomme leider immer noch einen Fehler

Die Pipeline wird nicht ausgeführt, da bereits eine Pipeline ausgeführt wird. Pipelines können nicht gleichzeitig ausge
führt werden.
+ CategoryInfo : OperationStopped: (Microsoft.Power...tHelperRunspace:ExecutionCmdletHelperRunspace) ,
PSInvalidOperationException
+ FullyQualifiedErrorId : RemotePipelineExecutionFailed

dies konnte ich nun umgehen in dem ich folgenden Befehl durch-Jage...:

(get-mailbox) * | foreach-object {Add-MailboxFolderPermission $_":\Kalender" -User Default -AccessRights PublishingAuthor}

Aber auch dies bringt Fehler:

Der Vorgang konnte nicht ausgeführt werden, weil 'Nicolas Jaquet:\Kalender' nicht gefunden wurde.
+ CategoryInfo : NotSpecified: (0:Int32) [Add-MailboxFolderPermission], ManagementObjectNotFoundException
+ FullyQualifiedErrorId : D8DD1534,Microsoft.Exchange.Management.StoreTasks.AddMailboxFolderPermission

Der User besteht...

Kann es evt. sein, dass das Lehrzeichen Probleme macht? Könnte man hier evt. auf den MailBox-Alias gehen, da dieser ja keine Leerzeichen drinn hat?
Member: Onitnarat
Onitnarat Dec 27, 2012 updated at 15:11:47 (UTC)
Goto Top
Schau mal hier: http://www.n2networksolutions.com/2011/02/22/manage-exchange-2010-calen ...

{codecitation}$users = Get-mailbox
$users | ForEach-Object {
Add-MailboxFolderPermission $_”:\Kalender” -User Default -AccessRights PublishingAuthor
}$users = Get-mailbox $users | ForEach-Object {{codecitation}

Wenn "Nicolas Jaquet" nun tatsächlich keinen "Kalender" hat, sondern einen "Calendar" oder einen "Calendrier" hat, weil seine Mailbox auf Englisch oder Französisch eingestellt ist, hast Du ein Problem.
Versuche doch mal die rein englische Bezeichnung "Calendar", die sollte allgemeingültig sein. Du nutzt ja auch das Recht "PublishingAuthor" und nicht "Veröffentlichender Autor". face-wink

Gruß
Marcus
Member: berlinger
berlinger Dec 27, 2012 at 15:28:09 (UTC)
Goto Top
Danke für Deine super hilfe...

Also die Sprache spielt wirklich eine Rolle. Wenn ich nun im Script auf Calendar switche, bekomme ich auch fehler... ich vermute einfach bei den Deutsch-Sprachigen Konten.

Zu deinem Script...

bin noch einen Neuling auf PowerShell

- Kopiere das Zeugs in eine Text-Datei und speichere dies z.B. als Test.ps1
- kopiere das Script nach "C:\Program Files\Microsoft\Exchange Server\V14\Scripts"
- Rufe in der Powershell nun Tets.ps1 auf

oder wie läuft das genau...? face-smile
Member: Onitnarat
Onitnarat Dec 27, 2012 at 15:35:21 (UTC)
Goto Top
Zitat von @berlinger:
bin noch einen Neuling auf PowerShell

- Kopiere das Zeugs in eine Text-Datei und speichere dies z.B. als Test.ps1
- kopiere das Script nach "C:\Program Files\Microsoft\Exchange Server\V14\Scripts"
- Rufe in der Powershell nun Tets.ps1 auf

oder wie läuft das genau...? face-smile

Ja, so in etwa. Du brauchst es aber nicht zwingend in das Scriptverzeichnis abzulegen. Ich habe meine Powershells z.B. unter D:\Batch liegen und führe sie von dort aus.
Einfach im Powershellfenster mit dem bekannten Befehlen "cd" in das Verzeichnis wechseln und dort die PS1 aufrufen. Aber Achtung, wenn du sie direkt im Verzeichnis aufrufen willst, dann ".\Test.ps1" tippen.

Zu "meinem" Skript. Ich habe das von der Seite, die ich oben verlinkt habe, adaptiert. Ob es überhaupt funktioniert weiß ich nicht, sieht aber generell gut aus.

Gruß
Marcus
Member: Onitnarat
Onitnarat Dec 27, 2012 at 15:41:33 (UTC)
Goto Top
http://blogs.technet.com/b/ilvancri/archive/2009/11/24/exchange-2010-an ...

Wenn Du Dir die Kommentare unten durchliest, da wird das Problem mit den Sprache diskutiert und wohl auch gelöst.

Get-MailboxFolderStatistics <mailbox> | %{Get-MailboxFolderPermission ("<mailbox>:{0}" -f $_.FolderId)}  

Wenn man mit der FolderID arbeitet ist es egal ob das Ding "Kalender", "Calendar" oder wie auch immer heißt.
Aber das müsste man jetzt mal testen...dazu reicht meine Zeit gerade nicht. face-sad
Member: berlinger
berlinger Dec 27, 2012 at 16:03:39 (UTC)
Goto Top
und nocheinmal danke...

muss mir das noch einmal anschauen... so wie es aber aussieht, passt das Script die Berechtigung schon ganz unten an und nicht nur auf den Kalender.

werde die Tage mal ein wenig googlen ob ich hierzu noch was finde bevor ich da gross was teste.