Stefan W 14 Geschrieben 22. August 2012 Melden Teilen Geschrieben 22. August 2012 Das heißt für mich soviel wie dass deine XML die Standardeinträge noch immer beinhaltet?! und warum verwendest du nicht den [code -Schalter?dann sieht das Ganze so aus, und ist übersichtlicher <?xml version="1.0" encoding="utf-8" ?> <Configuration version="1.0"> <!-- In order to enable Scripting Agent: - rename this file to ScriptingAgentConfig.xml - edit it appropriately - run the task: enable-CmdletExtensionAgent "Scripting Agent" In order to include into your scriptlet characters prohibited in XML, use escape sequences, e.g. "<",">","&" for "less than", greater than" and "ampersand respectively. --> <Feature Name="MailboxOperatorNumberProvisioning" Cmdlets="new-mailbox"> <ApiCall Name="ProvisionDefaultProperties"> #parameter list: #param([ProvisioningHandler]$provisioningHandler, [iConfigurable]$readOnlyIConfigurable) if($provisioningHandler.UserSpecifiedParameters["OperatorNumber"] -ne $null) { #if user has specified -OperatorNumber parameter, return return $null; } [color="Red"]gekürzt[/color] <!-- Do nothing if the user has recipient management role assigned. We don't enforce naming convention on admin --> foreach ($userRole in (Get-ManagementRoleAssignment -RoleAssignee $userId)) { if ((Get-ManagementRole $userRole.Role).RoleType -eq [Microsoft.Exchange.Data.Directory.SystemConfiguration.RoleType]::RecipientManagement) {return $null;} } <!-- Compose the naming convention validation regular expression: "MY-DIY-<user alias>-<free string that less than 32 characters>" --> $regExpression = "MY-DIY-" + (Get-Mailbox $userId).Alias + "-.{1,32}" <!-- Do regular expression validation --> if ([system.Text.RegularExpressions.Regex]::IsMatch($readOnlyIConfigurable.DisplayName, "^(" + $regExpression + ")$", [system.Text.RegularExpressions.RegexOptions]::IgnoreCase)) {return $null;} New-Object -type Microsoft.Exchange.Data.ProvisioningValidationError -argumentlist ("The name must follow the pattern as: MY-DIY-[Your Alias]-[Free string less than 32 characters]", [Microsoft.Exchange.Data.ExchangeErrorCategory]::Client ) </ApiCall> </Feature> <Feature Name="Auditing" Cmdlets="new-mailbox"> <ApiCall Name="Validate"> #parameter list: #param([ProvisioningHandler]$provisioningHandler, [iConfigurable]$readOnlyIConfigurable) $newObjectGuid = $readOnlyIConfigurable.Guid.ToString(); </ApiCall> <ApiCall Name="OnComplete"> #parameter list: #param([ProvisioningHandler]$provisioningHandler, [bool]$succeeded, [Exception]$exception) if($succeeded) { WriteToSQL($newObjectGuid); } </ApiCall> </Feature> <Common> function WriteToSQL { param([string]$newObjectGuid) $connectionString = GetConnectionString; $queryString = "INSERT into RecipientAudit (DistributionGroupGuid) VALUES ('$newObjectGuid')"; [reflection.assembly]::LoadWithPartialName("System.Data"); $sqlConnection = new-object -type System.Data.SqlClient.SqlConnection -argumentlist $connectionString; $command = new-object -type System.Data.SqlClient.SqlCommand -argumentlist $queryString; $command.Connection = $sqlConnection; $command.Connection.Open(); $command.ExecuteNonQuery(); $sqlConnection.Close(); } function GetConnectionString { return "server=MYSQLSERVER;uid=sa;password=myPassword;database=CmdletExtensions"; } </Common> </Configuration> <?xml version="1.0" encoding="utf-8" ?> < Configuration version="1.0"> <Feature Name="MailboxProvisioning" Cmdlets="new-mailbox"> <ApiCall Name="OnComplete"> if($succeeded) { $newmailbox = $provisioningHandler.UserSpecifiedParameters["Name"] set-casmailbox $newmailbox -ImapEnabled $False } </ApiCall> </Feature> </Configuration> lg Zitieren Link zu diesem Kommentar
-Haselier- 10 Geschrieben 22. August 2012 Autor Melden Teilen Geschrieben 22. August 2012 Hallo, Das heißt für mich soviel wie dass deine XML die Standardeinträge noch immer beinhaltet?! ja, ist das verkehrt? und warum verwendest du nicht den [code -Schalter? dann sieht das Ganze so aus, und ist übersichtlicher <- was meinst du mit CODE-Schalter?! ich sehe keine Unterschied von meinem zu deinem Post?! gruss Zitieren Link zu diesem Kommentar
Lian 2.424 Geschrieben 22. August 2012 Melden Teilen Geschrieben 22. August 2012 <- was meinst du mit CODE-Schalter?! ich sehe keine Unterschied von meinem zu deinem Post?!gruss Doch gibt es. Bitte füge Deine XMLs als Anhang Deinem post bei oder verwende wie vorgeschlagen zum Kennzeichnen von Code den passenden Schalter. Siehe https://www.mcseboard.de/misc.php?do=bbcode#code Dadurch ist Dein posting besser lesbar Zitieren Link zu diesem Kommentar
Stefan W 14 Geschrieben 22. August 2012 Melden Teilen Geschrieben 22. August 2012 Das heißt für mich soviel wie dass deine XML die Standardeinträge noch immer beinhaltet?!ja, ist das verkehrt? Wozu hast du sie denn drinnen? - ich hab mir die Std Einträge nicht durchgelesen, weiß daher auch nicht ob die etwas tun, oder ob alle auskommentiert sind - hast du das getan? Bitte füge Deine XMLs als Anhang Deinem post bei oder verwende wie vorgeschlagen zum Kennzeichnen von Code den passenden Schalter. Siehe https://www.mcseboard.de/misc.php?do=bbcode#code genau das meine ich. Verwende bitte auch die anderen Schalter - wie zB lg Zitieren Link zu diesem Kommentar
-Haselier- 10 Geschrieben 22. August 2012 Autor Melden Teilen Geschrieben 22. August 2012 (bearbeitet) nun habe ich NUR <?xml version="1.0" encoding="utf-8" ?> <Configuration version="1.0"> <Feature Name="MailboxProvisioning" Cmdlets="new-mailbox"> <ApiCall Name="OnComplete"> if($succeeded) { $newmailbox = $provisioningHandler.UserSpecifiedParameters["Name"] set-casmailbox $newmailbox -ImapEnabled $False } </ApiCall> </Feature> </Configuration> in der *xml datei auf beiden servern! habe einen existierenden ad account genommen und über emc ene MB zugewiesen IMAp aktiv!!! weiterer test analog zu oben NUR habe ich eine komplett NEUEN Account erstellt!!! meldung am ende des wizzards Summary: 1 item(s). 1 succeeded, 0 failed. Elapsed time: 00:00:11 mbtest6 Completed Warning: The cmdlet extension agent with the index 5 has thrown an exception in OnComplete(). The exception is: Microsoft.Exchange.Provisioning.ProvisioningException: ScriptingAgent: Exception thrown while invoking scriptlet for OnComplete API: The operation couldn't be performed because object 'mbtest6' couldn't be found on 'tb00002a.easycredit.intern'.. ---> Microsoft.Exchange.Configuration.Tasks.ManagementObjectNotFoundException: The operation couldn't be performed because object 'mbtest6' couldn't be found on 'tb00002a.easycredit.intern'. at Microsoft.Exchange.Configuration.Tasks.DataAccessTask`1.GetDataObject[TObject](IIdentityParameter id, IConfigDataProvider session, ObjectId rootID, OptionalIdentityData optionalData, Nullable`1 notFoundError, Nullable`1 multipleFoundError, ExchangeErrorCategory errorCategory) at Microsoft.Exchange.Configuration.Tasks.RecipientTaskHelper.ResolveDataObject[TDataObject](IConfigDataProvider dataSession, IConfigDataProvider globalCatalogSession, ADServerSettings serverSettings, IIdentityParameter identity, ObjectId rootId, OptionalIdentityData optionalData, String domainController, CategorizedGetDataObjectDelegate getDataObjectHandler, TaskVerboseLoggingDelegate logHandler, ErrorLoggerDelegate errorHandler) at Microsoft.Exchange.Configuration.Tasks.SetRecipientObjectTask`3.ResolveDataObject() at Microsoft.Exchange.Management.RecipientTasks.SetCASMailboxBase`2.ResolveDataObject() at Microsoft.Exchange.Management.RecipientTasks.SetCASMailbox.ResolveDataObject() at Microsoft.Exchange.Configuration.Tasks.SetObjectWithIdentityTaskBase`3.PrepareDataObject() at Microsoft.Exchange.Configuration.Tasks.SetRecipientObjectTask`3.PrepareDataObject() at Microsoft.Exchange.Configuration.Tasks.SetTaskBase`1.InternalValidate() at Microsoft.Exchange.Configuration.Tasks.SetObjectWithIdentityTaskBase`3.InternalValidate() at Microsoft.Exchange.Configuration.Tasks.SetRecipientObjectTask`3.InternalValidate() at Microsoft.Exchange.Management.RecipientTasks.SetCASMailboxBase`2.InternalValidate() at Microsoft.Exchange.Management.RecipientTasks.SetCASMailbox.InternalValidate() at Microsoft.Exchange.Configuration.Tasks.Task.ProcessRecord() --- End of inner exception stack trace --- at Microsoft.Exchange.ProvisioningAgent.ScriptingAgentHandler.OnComplete(Boolean succeeded, Exception e) at Microsoft.Exchange.Provisioning.ProvisioningLayer.OnComplete(Task task, Boolean succeeded, Exception exception) Exchange Management Shell command completed: New-Mailbox -Name 'mbtest6' -Alias 'mbtest6' -OrganizationalUnit 'easycredit.intern/Admin/OPFW/ExSrv/MSG01/Users' -UserPrincipalName 'mbtest6@easycredit.intern' -SamAccountName 'mbtest6' -FirstName 'mbtest6' -Initials '' -LastName '' -Password 'System.Security.SecureString' -ResetPasswordOnNextLogon $false Elapsed Time: 00:00:11 IMAP Aktiv!! an euch zwei die, das getestet haben, habt ihr in eurer Testumgebung, dass wir eine DAG Umgebung implementiert haben?! so langsam bin ich ratlos! bearbeitet 22. August 2012 von |Haselier| Zitieren Link zu diesem Kommentar
Stefan W 14 Geschrieben 22. August 2012 Melden Teilen Geschrieben 22. August 2012 willst du uns ärgern? Zitieren Link zu diesem Kommentar
-Haselier- 10 Geschrieben 22. August 2012 Autor Melden Teilen Geschrieben 22. August 2012 habe NUN auf mehrfachen wunsch den code tag verwendet... bin gespannt ob der zur Problemlösung dienlich ist!! Zitieren Link zu diesem Kommentar
Lian 2.424 Geschrieben 22. August 2012 Melden Teilen Geschrieben 22. August 2012 Das dient der Übersichtlichkeit und ist sicherlich kein Antwortbeschleuniger ;) Zitieren Link zu diesem Kommentar
-Haselier- 10 Geschrieben 22. August 2012 Autor Melden Teilen Geschrieben 22. August 2012 ich Merxx :) Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 22. August 2012 Melden Teilen Geschrieben 22. August 2012 Du hast in deiner xml eine Aktion für new-mailbox definiert und testet dann mit enable-mailbox. Das kann und muß nicht funktionieren. Ich kann am Tage selten auf deine Fragen antworten. Da beantworte ich die Fragen der Leute die sich gerade etwas über diverse Themen von mir erzählen lassen. Zitieren Link zu diesem Kommentar
-Haselier- 10 Geschrieben 23. August 2012 Autor Melden Teilen Geschrieben 23. August 2012 @ tesso ich kann dir grad nicht folgen? </Common> </Configuration> <?xml version="1.0" encoding="utf-8" ?> < Configuration version="1.0"> <Feature Name="MailboxProvisioning" Cmdlets="new-mailbox"> <ApiCall Name="OnComplete"> if($succeeded) { $newmailbox = $provisioningHandler.UserSpecifiedParameters["Name"] set-casmailbox $newmailbox -ImapEnabled $False } </ApiCall> </Feature> </Configuration> bezieht sich auf eine NEUE MB, was ich über die EMC sowie EMS auch gemacht habe UND zudem habe ich unterschieden: 1 ad account existiert 2 AD Account komplett neu erstellt ... Zitieren Link zu diesem Kommentar
-Haselier- 10 Geschrieben 24. August 2012 Autor Melden Teilen Geschrieben 24. August 2012 und jetzt ende der fahenstange? Zitieren Link zu diesem Kommentar
-Haselier- 10 Geschrieben 24. August 2012 Autor Melden Teilen Geschrieben 24. August 2012 mir ist folgendes aufgefallen, ich hatte das cmdlet new-mailbox in der *xml, was ich jedoch gemacht hatte war ein "enable-mailbox deswegen habe ich die *.xml angepasst <?xml version="1.0" encoding="utf-8" ?> <Configuration version="1.0"> <Feature Name="MailboxProvisioning" Cmdlets="enable-mailbox"> <ApiCall Name="OnComplete"> if($succeeded) { $newmailbox = $provisioningHandler.UserSpecifiedParameters["Name"] set-casmailbox $newmailbox -ImapEnabled $False } </ApiCall> </Feature> </Configuration> Summary: 1 item(s). 1 succeeded, 0 failed. Elapsed time: 00:00:00 mbtst Completed Warning: The cmdlet extension agent with the index 5 has thrown an exception in OnComplete(). The exception is: Microsoft.Exchange.Provisioning.ProvisioningException: ScriptingAgent: Exception thrown while invoking scriptlet for OnComplete API: Cannot bind argument to parameter 'Identity' because it is null.. ---> System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'Identity' because it is null. at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags) at System.Management.Automation.ParameterBinderController.BindPositionalParametersInSet(UInt32 validParameterSets, Dictionary`2 nextPositionalParameters, CommandParameterInternal argument, ParameterBindingFlags flags, ParameterBindingException& bindingException) at System.Management.Automation.ParameterBinderController.BindPositionalParameters(Collection`1 unboundArguments, UInt32 validParameterSets, UInt32 defaultParameterSet, Boolean ignoreArgumentsThatLookLikeParameters, ParameterBindingException& outgoingBindingException) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments) at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments) at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters) at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters) at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) --- End of inner exception stack trace --- at Microsoft.Exchange.ProvisioningAgent.ScriptingAgentHandler.OnComplete(Boolean succeeded, Exception e) at Microsoft.Exchange.Provisioning.ProvisioningLayer.OnComplete(Task task, Boolean succeeded, Exception exception) Exchange Management Shell command completed: Enable-Mailbox -Identity 'easycredit.intern/Users/mbtst' -Alias 'mbtest1' Elapsed Time: 00:00:00 Zitieren Link zu diesem Kommentar
-Haselier- 10 Geschrieben 24. August 2012 Autor Melden Teilen Geschrieben 24. August 2012 o.g warnung: The cmdlet extension agent with the index 5 has thrown an exception in OnComplete(). ist damit der Agent mit der Prio 5 gemeint?! Name Enabled Priority ---- ------- -------- Scripting Agent True 6 OAB Resources Management Agent True 5 Provisioning Policy Agent True 4 Mailbox Resources Management Agent True 3 Rus Agent True 2 Query Base DN Agent True 1 Admin Audit Log Agent True 255 Mailbox Creation Time Agent True 0 Fazit: MB enabled ... IMAP aktiviert!! :( Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 24. August 2012 Melden Teilen Geschrieben 24. August 2012 mir ist folgendes aufgefallen, ich hatte das cmdlet new-mailbox in der *xml, was ich jedoch gemacht hatte war ein "enable-mailbox Genau das hatte ich geschrieben.:) Probiere doch nicht alles durcheinander. Die xml welche ich gepostet hatte funktioniert bei new-mailbox. Das hatte ich getestet. Nimm diese xml und versuche das nachzustellen. Wenn das funktioniert, versuchen wir die xml zu erweitern. Funktioniert das nicht such den Fehler. 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.