Sunny61 807 Geschrieben 5. Dezember 2013 Melden Teilen Geschrieben 5. Dezember 2013 Hallo zusammen, ich versuche mittels einer ForEach Schleife alle Miglieder einer Gruppe auf ein Ressourcenpostfach Vollzugriff zu geben. Hier mein Script: Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 $array = Get-DistributionGroupMember 'MeinGruppe' | Select SamAccountName foreach ($element in $array) { echo $element Add-MailboxPermission -Identity DasPostfach -User $element -AccessRights FullAccess -InheritanceType All -AutoMapping $true } Das $element wird alleine ordentlich ausgegeben, nur die zweite Zeile gibt folgende Fehlermeldung aus: Add-MailboxPermission : Der Parameter "User" kann nicht gebunden werden. Der Wert "@{SamAccountName=MeinUser}" kann nicht in den Typ "Microsoft.Exchange.Configuration.Tasks.SecurityPrincipalIdParameter" konvertiert werden. Fehler: "Der Wert "@{SamAccountName=Meinuser}" vom Typ "Selected.Microsoft.Exchange.Data.Directory.Management.ReducedRecipient" kann nicht in den Typ "Microsoft.Exchange.Configuration.Tasks.SecurityPrincipalIdParameter" konvertiert werden." In Zeile:8 Zeichen:49 + Add-MailboxPermission -Identity immosolve -User $element -AccessRights FullAcces ... + ~~~~~~~~ + CategoryInfo : InvalidArgument: ( :) [Add-MailboxPermission], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Exchange.Management.RecipientTasks.AddMailboxPermission Für sich alleine funktioniert der Befehl: Add-MailboxPermission -Identity DasPostfach -User MeinUser -AccessRights FullAccess -InheritanceType All -AutoMapping $true Hat jemand einen Tipp für mich? Vielen Dank schon im Voraus. Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 5. Dezember 2013 Melden Teilen Geschrieben 5. Dezember 2013 Probiers mal so: Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 Get-DistributionGroupMember 'MeinGruppe' | Select SamAccountName | % { echo $_.SamAccountName Add-MailboxPermission -Identity DasPostfach -User ($_.SamAccountName) -AccessRights FullAccess -InheritanceType All -AutoMapping $true } Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 5. Dezember 2013 Autor Melden Teilen Geschrieben 5. Dezember 2013 (bearbeitet) Danke, sah gut aus, bis zu dieser Warnung: WARNUNG: Der Cmdlet-Erweiterungs-Agent mit dem Index 0 hat eine Ausnahme in 'OnComplete()' ausgelöst: System.TypeInitializationException: Der Typeninitialisierer für "Microsoft.Exchange.Data.Storage.NativeStorePropertyDefinitionDictionary" hat eine Ausnahme verursacht. ---> System.NotSupportedException: Not supported field(MailEnabled) type(Microsoft.Exchange.Data.Storage.PropertyTagPropertyDefinition). bei Microsoft.Exchange.Data.Storage.NativeStorePropertyDefinitionDictionary.PropertyDefinitionSets.BuildWellKnownSets() bei Microsoft.Exchange.Data.Storage.NativeStorePropertyDefinitionDictionary..cctor() --- Ende der internen Ausnahmestapelüberwachung --- bei Microsoft.Exchange.Data.Storage.PropertyTagPropertyDefinition.TryFindEquivalentDefinition(PropTagKey key, Boolean isCustom, PropType type, TypeCheckingFlag typeCheckingFlag, PropertyTagPropertyDefinition& definition, Boolean& createNewDefinition) bei Microsoft.Exchange.Data.Storage.PropertyTagPropertyDefinition.InternalCreate(String displayName, PropTag propertyTag, PropertyFlags flags, TypeCheckingFlag typeCheckingFlag, Boolean isCustom, PropertyDefinitionConstraint[] constraints) bei Microsoft.Exchange.Data.Storage.PropertyTagCache.InternalPropertyDefinitionsFromPropTags(TypeCheckingFlag propertyTypeCheckingFlag, MapiProp mapiProp, StoreSession storeSession, PropTag[] propTags, Int32& resolvedPropertyCount) bei Microsoft.Exchange.Data.Storage.RecipientTable.GetRecipientPropertyDefinitionsFromMapiTable(Boolean& originalColumnsChanged) bei Microsoft.Exchange.Data.Storage.RecipientTable.BuildRecipientCollection(Action`2 recipientCollectionBuilder) bei Microsoft.Exchange.Data.Storage.CoreRecipientCollection..ctor(ICoreItem coreItem) bei Microsoft.Exchange.Data.Storage.CoreItem.Microsoft.Exchange.Data.Storage.ICoreItem.GetRecipientCollection(Boolean forceOpen) bei Microsoft.Exchange.Data.Storage.CoreItem.GetRecipientCharsetDetectionData(StringBuilder stringBuilder, Boolean isComplete) bei Microsoft.Exchange.Data.Storage.CoreItem.GetCharsetDetectionData(StringBuilder stringBuilder, CharsetDetectionDataFlags flags) bei Microsoft.Exchange.Data.Storage.ItemCharsetDetector.BuildCodePageDetector(MemoryStream& cachedHtmlBody) bei Microsoft.Exchange.Data.Storage.ItemCharsetDetector.DetectCpidWithOptions(Charset userCharset, MemoryStream& cachedHtmlBody) bei Microsoft.Exchange.Data.Storage.ItemCharsetDetector.SetCachedBodyDataAndDetectCharset(Char[] cachedBodyData, Charset userCharset, Bo dyCharsetFlags charsetFlags) bei Microsoft.Exchange.Data.Storage.BodyCharsetDetectionStream.CalculateCharset() bei Microsoft.Exchange.Data.Storage.BodyCharsetDetectionStream.OnBufferFull() bei Microsoft.Exchange.Data.Storage.BodyCharsetDetectionStream.CloseDetectorConversionStream() bei Microsoft.Exchange.Data.Storage.BodyCharsetDetectionStream.Flush() bei Microsoft.Exchange.Data.TextConverters.ConverterEncodingOutput.Flush() bei Microsoft.Exchange.Data.TextConverters.Internal.Text.TextCodePageConverter.Run() bei Microsoft.Exchange.Data.TextConverters.Internal.Text.TextCodePageConverter.Flush() bei Microsoft.Exchange.Data.TextConverters.ConverterWriter.Flush() bei Microsoft.Exchange.Data.TextConverters.ConverterWriter.Dispose(Boolean disposing) bei System.IO.TextWriter.Close() bei Microsoft.Exchange.Data.Storage.BodyTextWriter.<CloseWriter>b__11() bei Microsoft.Exchange.Data.Storage.ConvertUtils.CallCts(Trace tracer, String methodName, LocalizedString exceptionString, CtsCall ctsCa ll) bei Microsoft.Exchange.Data.Storage.BodyTextWriter.CloseWriter() bei Microsoft.Exchange.Data.Storage.BodyTextWriter.Dispose(Boolean disposing) bei System.IO.TextWriter.Dispose() bei Microsoft.Exchange.ProvisioningAgent.MailboxLoggerFactory.XsoMailer.Log(AdminLogMessageData data, LogMessageDelegate logMessage) bei Microsoft.Exchange.ProvisioningAgent.AdminLogProvisioningHandler.OnComplete(Boolean succeeded, Exception e) bei Microsoft.Exchange.Provisioning.ProvisioningLayer.OnComplete(Task task, Boolean succeeded, Exception exception) bearbeitet 5. Dezember 2013 von Sunny61 Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 5. Dezember 2013 Melden Teilen Geschrieben 5. Dezember 2013 Benötigt der vllt gar nicht den SamAccountName sondern die eMailadresse? Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 5. Dezember 2013 Autor Melden Teilen Geschrieben 5. Dezember 2013 (bearbeitet) Ich glaube die Lösung für die Warnung ist hausgemacht: Powershell v3 is not (yet) supported with Exchange 2010: http://technet.microsoft.com/en-us/library/ff728623.aspx Benötigt der vllt gar nicht den SamAccountName sondern die eMailadresse? Nein, manuell, bzw. als einzelner Befehl funktioniert das schon, PS3 ist vermutlich der Fehler. Den Mailserver fasse ich aber nicht mehr an, das bleibt so wie es ist. @mamamia Vielen Dank für den Hinweis, ich werde das auf jeden Fall im Auge behalten. :) bearbeitet 5. Dezember 2013 von Sunny61 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.