Running a Powershell Script from Rule Errors out

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&lt;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?

1 Like

Hi @AhmedWaleed ,

I see the exception is throwing from IQService. Could you please check the IQService Logs? Maybe you can find few more details over there.

Hello @bhanuprakashkuruva,

There is no logs in the IQTrace.log.

Hello @bhanuprakashkuruva,

I have found the issue:
I loaded the iqservice in debug mode and found that there was a permission issue in folder of the iqservice.
I solved it but facing a new issue:

every single line is coming as “is not recognized as internal or external command”

Hello All,

I modified the script and it worked. now.

Thank you.

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.