Which IIQ version are you inquiring about?
8.4
I have a beanshell Rule invoking a powershell rule but im getting the following error:
2024-09-03T10:29:02,140 ERROR http-nio-80-exec-6 sailpoint.DBChangeWorkflow.WorkflowRule:166 - Error occurred during script execution
sailpoint.tools.GeneralException: Errors returned from IQService. After script returned non zero exit code : 1 :
at sailpoint.connector.RPCService.checkForErrors(RPCService.java:875) ~[identityiq.jar:8.4]
at sailpoint.connector.RPCService.parseResponse(RPCService.java:711) ~[identityiq.jar:8.4]
at sailpoint.connector.RPCService.execute(RPCService.java:513) ~[identityiq.jar:8.4]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at bsh.Reflect.invokeMethod(Reflect.java:166) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.Reflect.invokeObjectMethod(Reflect.java:99) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.Name.invokeMethod(Name.java:858) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.BSHVariableDeclarator.eval(BSHVariableDeclarator.java:86) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.BSHTypedVariableDeclaration.eval(BSHTypedVariableDeclaration.java:84) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.BSHBlock.evalBlock(BSHBlock.java:130) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.BSHBlock.eval(BSHBlock.java:80) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.BSHBlock.eval(BSHBlock.java:46) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.BSHTryStatement.eval(BSHTryStatement.java:88) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.Interpreter.eval(Interpreter.java:664) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.Interpreter.eval(Interpreter.java:758) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.Interpreter.eval(Interpreter.java:747) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at bsh.util.BeanShellBSFEngine.eval(BeanShellBSFEngine.java:186) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at org.apache.bsf.BSFManager$5.run(BSFManager.java:445) ~[bsf.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.apache.bsf.BSFManager.eval(BSFManager.java:442) ~[bsf.jar:?]
at sailpoint.server.BSFRuleRunner.eval(BSFRuleRunner.java:245) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.BSFRuleRunner.runRule(BSFRuleRunner.java:216) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.InternalContext.runRule(InternalContext.java:1322) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.ScriptletEvaluator.doRule(ScriptletEvaluator.java:237) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.server.ScriptletEvaluator.evalSource(ScriptletEvaluator.java:67) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.api.Workflower.evalSource(Workflower.java:5937) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.api.Workflower.advanceStep(Workflower.java:5176) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.api.Workflower.advance(Workflower.java:4563) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.api.Workflower.assimilate(Workflower.java:4213) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.api.Workflower.handleWorkItem(Workflower.java:7651) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.api.Workflower.process(Workflower.java:1858) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.api.Workflower.process(Workflower.java:1882) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.api.WorkflowSession.advance(WorkflowSession.java:468) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.service.WorkflowSessionService.advance(WorkflowSessionService.java:105) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.service.form.FormService.next(FormService.java:192) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.service.form.FormService.submit(FormService.java:115) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.rest.ui.form.BaseFormResource.submitOrValidate(BaseFormResource.java:162) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at sailpoint.rest.ui.form.BaseFormResource.submit(BaseFormResource.java:122) ~[identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at jdk.internal.reflect.GeneratedMethodAccessor5705.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52) ~[jersey-server-2.35.jar:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124) [jersey-server-2.35.jar:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167) [jersey-server-2.35.jar:?]
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176) [jersey-server-2.35.jar:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79) [jersey-server-2.35.jar:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:475) [jersey-server-2.35.jar:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:397) [jersey-server-2.35.jar:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81) [jersey-server-2.35.jar:?]
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255) [jersey-server-2.35.jar:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) [jersey-common-2.35.jar:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) [jersey-common-2.35.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:292) [jersey-common-2.35.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:274) [jersey-common-2.35.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:244) [jersey-common-2.35.jar:?]
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265) [jersey-common-2.35.jar:?]
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234) [jersey-server-2.35.jar:?]
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684) [jersey-server-2.35.jar:?]
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394) [jersey-container-servlet-core-2.35.jar:?]
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) [jersey-container-servlet-core-2.35.jar:?]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366) [jersey-container-servlet-core-2.35.jar:?]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319) [jersey-container-servlet-core-2.35.jar:?]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205) [jersey-container-servlet-core-2.35.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) [catalina.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.91]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) [tomcat-websocket.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.91]
at sailpoint.web.SailPointResponseFilter.doFilter(SailPointResponseFilter.java:76) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.91]
at sailpoint.rest.jaxrs.MethodOverrideFilter.doFilter(MethodOverrideFilter.java:90) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.91]
at sailpoint.rest.RestCsrfValidationFilter.doFilter(RestCsrfValidationFilter.java:71) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.91]
at sailpoint.rest.AuthenticationFilter.doFilter(AuthenticationFilter.java:109) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.91]
at sailpoint.web.SailPointContextRequestFilter.doFilter(SailPointContextRequestFilter.java:68) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.91]
at sailpoint.web.SailPointPollingRequestFilter.doFilter(SailPointPollingRequestFilter.java:151) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.91]
at sailpoint.web.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:63) [identityiq.jar:8.4 Build bdd0ed4de58-20230919-192552]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.91]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.24.RELEASE.jar:5.2.24.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) [catalina.jar:9.0.91]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) [catalina.jar:9.0.91]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) [catalina.jar:9.0.91]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) [catalina.jar:9.0.91]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) [catalina.jar:9.0.91]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) [catalina.jar:9.0.91]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) [catalina.jar:9.0.91]
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660) [catalina.jar:9.0.91]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [catalina.jar:9.0.91]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) [catalina.jar:9.0.91]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:388) [tomcat-coyote.jar:9.0.91]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) [tomcat-coyote.jar:9.0.91]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936) [tomcat-coyote.jar:9.0.91]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) [tomcat-coyote.jar:9.0.91]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [tomcat-coyote.jar:9.0.91]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) [tomcat-util.jar:9.0.91]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-util.jar:9.0.91]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) [tomcat-util.jar:9.0.91]
at java.lang.Thread.run(Thread.java:829) [?:?]
The beanshell Rule:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Rule PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Rule created="1723635085708" id="9e1d201e912b10d9819150a8318c1c3c" language="beanshell" modified="1723637106687" name="Exchange Upgrade" significantModified="1723637106687" type="Workflow">
<Description>A rule used by a Workflow to determine a step action or variable value.
Note that an Attributes map of all variables from the current WorkflowContext, merged with the arguments from the Step, is also passed into the workflow rule.</Description>
<Signature returnType="Object">
<Inputs>
<Argument name="log" type="org.apache.commons.logging.Log">
<Description>
The log object associated with the SailPointContext.
</Description>
</Argument>
<Argument name="context" type="sailpoint.api.SailPointContext">
<Description>
A sailpoint.api.SailPointContext object that can be used to query the database if necessary.
</Description>
</Argument>
<Argument name="wfcontext">
<Description>
The current WorkflowContext.
</Description>
</Argument>
<Argument name="handler">
<Description>
The workflow handler associated with the current WorkflowContext.
</Description>
</Argument>
<Argument name="workflow">
<Description>
The current Workflow definition.
</Description>
</Argument>
<Argument name="step">
<Description>
The current Step.
</Description>
</Argument>
<Argument name="approval">
<Description>
The current Approval.
</Description>
</Argument>
<Argument name="item">
<Description>
The WorkItem being processed.
</Description>
</Argument>
</Inputs>
<Returns>
<Argument name="Object">
<Description>
The result of the workflow rule; dependent on the rule itself.
</Description>
</Argument>
</Returns>
</Signature>
<Source>import sailpoint.object.RpcRequest;
import sailpoint.object.RpcResponse;
import sailpoint.connector.RPCService;
import sailpoint.object.Rule;
import sailpoint.object.Link;
import sailpoint.object.Identity;
import sailpoint.api.SailPointContext;
import sailpoint.object.ProvisioningPlan.AccountRequest;
import sailpoint.object.ProvisioningPlan.AttributeRequest;
import sailpoint.object.ProvisioningPlan.Operation;
import sailpoint.object.Application;
import sailpoint.object.Attributes;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
Log serilog = LogFactory.getLog("sailpoint.DBChangeWorkflow.WorkflowRule");
serilog.debug("Starting script.");
public AttributeRequest buildParamAttributeRequest(String paramName, Object paramValue) {
serilog.debug("Building AttributeRequest for param: " + paramName + " with value: " + paramValue);
AttributeRequest paramRequest = new AttributeRequest();
paramRequest.setOperation(Operation.Add);
paramRequest.setName(paramName);
paramRequest.setValue(paramValue);
return paramRequest;
}
try {
String requester = workflow.get("requester");
serilog.debug("Requester: " + requester);
Identity requesterObject = context.getObjectByName(Identity.class, requester);
List<Link> accounts = requesterObject.getLinks();
String mailNickname = null;
String mail = null;
if (accounts != null) {
for (Link account : accounts) {
serilog.debug("Processing account for application: " + account.getApplicationName());
if ("Active Directory".equals(account.getApplicationName())) {
mailNickname = account.getAttribute("mailNickname");
mail = account.getAttribute("mail");
serilog.debug("Found Active Directory account. MailNickname: " + mailNickname + ", Mail: " + mail);
}
}
} else {
serilog.warn("No accounts found for requester.");
}
String nextDatabase = workflow.get("nextExchangeDb");
serilog.debug("Next Exchange Database: " + nextDatabase);
Rule rule = context.getObject(Rule.class, "Powershell-MoveDatabase");
serilog.debug("Powershell-MoveDatabase Rule retrieved.");
Application activeDirectory = context.getObject(Application.class, "Active Directory");
List iqServiceConfig = activeDirectory.getAttributes().getList("IQServiceConfiguration");
serilog.debug("Active Directory IQServiceConfiguration retrieved.");
Map iqServiceConfigMap = (Map) iqServiceConfig.get(0);
String hostName = (String) iqServiceConfigMap.get("IQServiceHost");
String port = iqServiceConfigMap.get("IQServicePort");
serilog.debug("IQServiceHost: " + hostName + ", IQServicePort: " + port);
AccountRequest accountRequest = new AccountRequest();
accountRequest.setApplication("IIQ");
accountRequest.setNativeIdentity(requester);
accountRequest.setOperation(AccountRequest.Operation.Modify);
accountRequest.add(buildParamAttributeRequest("username", mailNickname));
accountRequest.add(buildParamAttributeRequest("TargetDatabase", nextDatabase));
serilog.debug("AccountRequest created for requester: " + requester);
Map dataMap = new HashMap();
dataMap.put("postScript", rule);
dataMap.put("Request", accountRequest);
dataMap.put("Application", activeDirectory.getAttributes());
serilog.debug("Data map for RpcRequest prepared.");
RPCService service = new RPCService(hostName, Integer.valueOf(port), false, false);
service.setConnectorServices(new sailpoint.connector.DefaultConnectorServices());
RpcRequest request = new RpcRequest("ScriptExecutor", "runAfterScript", dataMap);
serilog.debug("RPCService initialized and RpcRequest created.");
RpcResponse response = service.execute(request);
serilog.debug("RpcResponse received. Status: " + response.getStatus());
} catch (Exception e) {
serilog.error("Error occurred during script execution", e);
}
serilog.debug("Script execution completed.");</Source>
</Rule>
The Powershell:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Rule PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Rule created="1723626306068" id="9e1d201e912b10d9819150223a141b4a" language="beanshell" modified="1725262182770" name="Powershell-MoveDatabase" significantModified="1725262182770">
<Source>
# Load the necessary assemblies
Add-Type -Path C:\Program Files\IQService\utils.dll
Add-Type -Path C:\Program Files\IQService\log4net.dll
# Initialize logger
$log = [log4net.LogManager]::GetLogger("sailpoint.PowershellScript.WorkflowRule");
# Log the start of the script
$log.Debug("Script execution started.");
# Parse the request XML and log the input
$log.Debug("Parsing the request XML from environment variable.");
$sReader = New-Object System.IO.StringReader([System.String]$env:Request);
$xmlReader = [System.xml.XmlTextReader]([sailpoint.Utils.xml.XmlUtil]::getReader($sReader));
$requestObject = New-Object Sailpoint.Utils.objects.AccountRequest($xmlReader);
# Initialize result object
$resultObject = New-Object Sailpoint.Utils.objects.ServiceResult;
# Log attribute extraction
$log.Debug("Extracting attributes from AccountRequest.")
$attributes = @{}
foreach ($attribute in $requestObject.AttributeRequests) {
$attributes[$attribute.Name] = $attribute.Value;
$log.Debug("Extracted attribute: $($attribute.Name) = $($attribute.Value)");
}
# Log the initiation of the Exchange session
$log.Debug("Establishing a new PSSession with Exchange server.")
$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://XXX/PowerShell/" -Authentication Kerberos
Import-PSSession $ExchangeSession
$log.Debug("Exchange PSSession established successfully.")
# Log the move request action
$log.Debug("Initiating New-MoveRequest for user: $($attributes["username"]) to target database: $($attributes["TargetDatabase"]).")
New-MoveRequest -Identity $attributes["username"] -TargetDatabase $attributes["TargetDatabase"]
$log.Debug("New-MoveRequest completed successfully for user: $($attributes["username"]).")
# Close the session and log it
$log.Debug("Removing PSSession with Exchange server.")
Remove-PSSession $ExchangeSession
$log.Debug("PSSession removed successfully.")
# Log the end of the script
$log.Debug("Script execution completed.")
</Source>
</Rule>
Any idea what could be the problem?