Jump to content

SamAccountName in Array verwenden


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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.

Link zu diesem Kommentar

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 von Sunny61
Link zu diesem Kommentar

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 von Sunny61
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...