<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>automation &#8211; Blue Lance</title>
	<atom:link href="https://bluelance.com/docs-tag/automation/feed/" rel="self" type="application/rss+xml" />
	<link>https://bluelance.com</link>
	<description></description>
	<lastBuildDate>Sat, 13 Jun 2026 15:30:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://bluelance.com/wp-content/uploads/2025/11/fevicon-ic-1.png</url>
	<title>automation &#8211; Blue Lance</title>
	<link>https://bluelance.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>What is PowerShell Orchestrator?</title>
		<link>https://bluelance.com/docs/what-is-powershell-orchestrator/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:21:14 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15866</guid>

					<description><![CDATA[PowerShell Orchestrator is a centralized job scheduling and execution platform for PowerShell scripts across distributed Windows environments. It consists of a web-based server for managing scripts, jobs, and schedules, and lightweight agents deployed on target machines that execute scripts remotely. How PowerShell Orchestrator works: The server manages all aspects of the platform — scripts, jobs, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">PowerShell Orchestrator is a centralized job scheduling and execution platform for PowerShell scripts across distributed Windows environments. It consists of a web-based server for managing scripts, jobs, and schedules, and lightweight agents deployed on target machines that execute scripts remotely.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>How PowerShell Orchestrator works:</strong></p>



<p class="wp-block-paragraph">The server manages all aspects of the platform — scripts, jobs, schedules, syslog targets, and connected agents. Agents are deployed on the Windows machines where scripts need to run. Each agent polls the server for queued jobs, executes the assigned PowerShell script locally, and forwards script output to the configured syslog destination.</p>



<p class="wp-block-paragraph"><strong>Data flow:</strong></p>



<ol class="wp-block-list">
<li>Administrator uploads PowerShell scripts to the server and configures syslog targets</li>



<li>Administrator creates a job or schedule, selecting a script, agent, and target</li>



<li>The agent polls the server and claims the queued job</li>



<li>The agent downloads and executes the PowerShell script locally</li>



<li>Script output is forwarded to the configured syslog target in real time</li>



<li>The agent reports job completion, exit code, and execution logs back to the server</li>



<li>Results are available for review in the Jobs page and in LT Auditor-MP</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Core components:</strong></p>



<p class="wp-block-paragraph"><strong>PowerShell Orchestrator Server</strong> An ASP.NET Core web application that hosts the administrative interface and REST API. It manages script storage, job queuing, schedules, syslog targets, and agent registrations. The server runs as a Windows service named <strong>PowerShellOrchestrator</strong> and uses a SQLite database for persistence. The web interface is accessible via browser on port 52866 (HTTPS) or 52865 (HTTP).</p>



<p class="wp-block-paragraph"><strong>PowerShell Orchestrator Agent</strong> A .NET background service deployed on each Windows machine where scripts need to run. The agent polls the server for available jobs at a configurable interval (default: every 20 seconds), downloads and executes assigned PowerShell scripts, forwards output to the configured syslog target, and sends regular heartbeats to the server (default: every 60 seconds). The agent runs as a Windows service named <strong>PowerShellOrchestrator.Agent</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Key capabilities include:</strong></p>



<ul class="wp-block-list">
<li>Centralized storage and management of PowerShell scripts</li>



<li>Remote script execution across distributed Windows agents</li>



<li>On-demand and scheduled recurring job execution using cron expressions</li>



<li>Real-time job status monitoring and execution history</li>



<li>Script output forwarding to syslog targets for centralized logging in LT Auditor-MP</li>



<li>Secure HTTPS/TLS communication between server and agents</li>



<li>Role-based access control with forced password changes</li>



<li>Support for both Windows PowerShell 5 and PowerShell Core 7</li>



<li>Runs as a Windows service on Windows or Linux systemd service on Linux</li>
</ul>



<p class="wp-block-paragraph"><strong>Common use cases:</strong></p>



<ul class="wp-block-list">
<li>Automated assessment of Active Directory configuration and security posture</li>



<li>Scheduled execution of compliance and security audit scripts across the environment</li>



<li>Remote PowerShell script execution without requiring direct access to individual machines</li>



<li>Centralized collection and forwarding of PowerShell script output to LT Auditor-MP</li>



<li>Automating routine administrative tasks across distributed Windows infrastructure</li>
</ul>



<p class="wp-block-paragraph"><strong>How PowerShell Orchestrator fits into LT Auditor-MP:</strong></p>



<p class="wp-block-paragraph">PowerShell Orchestrator extends LT Auditor-MP&#8217;s capabilities into active script-based assessment and automation. Where other modules collect events passively as they occur, PowerShell Orchestrator actively executes scripts on demand or on a schedule — querying the state of your Windows environment and forwarding structured results to LT Auditor-MP for analysis, alerting, and compliance reporting.</p>



<p class="wp-block-paragraph"><em>[Your administrator should confirm which Windows machines are in scope for PowerShell Orchestrator agent deployment and which scripts will be used in your environment.]</em></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creating and Scheduling Scripts</title>
		<link>https://bluelance.com/docs/creating-and-scheduling-scripts/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:21:05 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15872</guid>

					<description><![CDATA[PowerShell Orchestrator allows you to define, store, and schedule PowerShell scripts that run against your managed endpoints and Entra ID targets. Scripts are the core of what PowerShell Orchestrator does — they query your directory environment, collect assessment data, and forward results to LT Auditor MP. This article covers how to create, configure, and schedule [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">PowerShell Orchestrator allows you to define, store, and schedule PowerShell scripts that run against your managed endpoints and Entra ID targets. Scripts are the core of what PowerShell Orchestrator does — they query your directory environment, collect assessment data, and forward results to LT Auditor <sup>MP</sup>. This article covers how to create, configure, and schedule scripts within the platform.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Understanding scripts in PowerShell Orchestrator:</strong></p>



<p class="wp-block-paragraph">A script in PowerShell Orchestrator consists of:</p>



<ul class="wp-block-list">
<li>The <strong>PowerShell code</strong> to execute on the target endpoint or against Entra ID</li>



<li>The <strong>target endpoint or cloud target</strong> the script runs against</li>



<li>A <strong>schedule</strong> defining when and how often the script runs</li>



<li>Optional <strong>alert linkage</strong> that triggers the script automatically in response to a security event</li>
</ul>



<p class="wp-block-paragraph">Scripts are stored centrally in LT Auditor <sup>MP</sup> and pushed to the relevant endpoint at execution time. Output from each script run is captured and forwarded to the LT Auditor <sup>MP</sup> server as structured assessment data.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Accessing the script library:</strong></p>



<ol class="wp-block-list">
<li>Log in to the LT Auditor <sup>MP</sup> Web UI</li>



<li>Navigate to <strong>Configure → PowerShell Orchestrator → Scripts</strong></li>



<li>The script library displays all saved scripts with their name, target, schedule status, and last run time</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Creating a new script:</strong></p>



<ol class="wp-block-list">
<li>Click <strong>Add New Script</strong></li>



<li>Configure the script details:
<ul class="wp-block-list">
<li><strong>Script Name</strong> — a clear, descriptive name (e.g., &#8220;AD Privileged Group Membership Assessment&#8221;)</li>



<li><strong>Description</strong> — the purpose of the script and what it assesses</li>



<li><strong>Target Type</strong> — select either a managed endpoint or an Entra ID cloud target</li>



<li><strong>Target</strong> — select the specific endpoint or cloud target from the configured list</li>
</ul>
</li>



<li>Enter or paste your PowerShell script code in the script editor:</li>
</ol>



<p class="wp-block-paragraph"># Example: List all members of the Domain Admins group</p>



<p class="wp-block-paragraph">Get-ADGroupMember -Identity &#8220;Domain Admins&#8221; -Recursive |</p>



<p class="wp-block-paragraph">Select-Object Name, SamAccountName, DistinguishedName |</p>



<p class="wp-block-paragraph">ConvertTo-Json</p>



<ol start="4" class="wp-block-list">
<li>Configure output settings:
<ul class="wp-block-list">
<li><strong>Output Format</strong> — JSON is recommended for structured data forwarding to LT Auditor <sup>MP</sup></li>



<li><strong>Max Output Size</strong> — set a limit to prevent excessively large outputs</li>
</ul>
</li>



<li>Click <strong>Save</strong></li>
</ol>



<p class="wp-block-paragraph"><em>[Your administrator should populate the script library with assessment scripts relevant to your environment. Blue Lance may provide a default set of assessment scripts — refer to the Blue Lance documentation at https://www.bluelance.com/docs for details.]</em></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Recommended assessment scripts to create:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Script Name</strong></td><td><strong>Purpose</strong></td></tr><tr><td>Domain Admins Membership</td><td>Lists all current members of the Domain Admins group</td></tr><tr><td>Stale User Accounts</td><td>Identifies user accounts inactive for 90+ days</td></tr><tr><td>Accounts Without MFA</td><td>Identifies Entra ID accounts without MFA enabled</td></tr><tr><td>Local Admin Accounts</td><td>Lists local administrator accounts on managed servers</td></tr><tr><td>Expired Passwords</td><td>Identifies accounts with expired or never-expiring passwords</td></tr><tr><td>GPO Configuration Assessment</td><td>Reviews Group Policy Object settings for security misconfigurations</td></tr><tr><td>Entra ID Role Assignments</td><td>Lists all current Entra ID role assignments</td></tr><tr><td>Conditional Access Policy Review</td><td>Reviews Entra ID conditional access policy configurations</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><em>[Your administrator should adjust this list based on your organization&#8217;s specific assessment requirements and compliance frameworks.]</em></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Scheduling a script:</strong></p>



<ol class="wp-block-list">
<li>Open the script configuration</li>



<li>Navigate to the <strong>Schedule</strong> tab</li>



<li>Click <strong>Add Schedule</strong></li>



<li>Configure the schedule:
<ul class="wp-block-list">
<li><strong>Frequency</strong> — Daily, Weekly, Monthly, or a custom interval</li>



<li><strong>Day and Time</strong> — when the script should run</li>



<li><strong>Time Zone</strong> — the timezone for schedule execution</li>
</ul>
</li>



<li>Click <strong>Save</strong></li>
</ol>



<p class="wp-block-paragraph">The script will run automatically at the configured time and forward its output to the LT Auditor <sup>MP</sup> server.</p>



<p class="wp-block-paragraph">Stagger script schedules to avoid running multiple assessment scripts simultaneously, particularly against the same domain controller. Concurrent assessments can impact domain controller performance.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Running a script on demand:</strong></p>



<p class="wp-block-paragraph">To run a script immediately without waiting for the scheduled time:</p>



<ol class="wp-block-list">
<li>Open the script from the script library</li>



<li>Click <strong>Run Now</strong></li>



<li>Monitor the execution progress in <strong>Configure → PowerShell Orchestrator → Execution Log</strong></li>



<li>When complete, navigate to <strong>View</strong> in the Web UI to see the assessment results</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Editing an existing script:</strong></p>



<ol class="wp-block-list">
<li>Open the script from the script library</li>



<li>Click the <strong>Edit</strong> icon</li>



<li>Make the necessary changes to the script code, target, or schedule</li>



<li>Click <strong>Save</strong></li>
</ol>



<p class="wp-block-paragraph">Changes to a script take effect on the next scheduled run or the next time the script is run manually. Any currently running execution of the script will complete using the previous version.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Duplicating a script:</strong></p>



<p class="wp-block-paragraph">To create a similar script quickly without starting from scratch:</p>



<ol class="wp-block-list">
<li>Select the script from the script library</li>



<li>Click <strong>Duplicate</strong></li>



<li>Modify the name, target, or code as needed</li>



<li>Click <strong>Save</strong></li>
</ol>



<p class="wp-block-paragraph">This is useful when you need to run the same assessment against multiple different endpoints.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Enabling and disabling scripts:</strong></p>



<p class="wp-block-paragraph">To temporarily suspend a script without deleting it:</p>



<ol class="wp-block-list">
<li>Open the script configuration</li>



<li>Toggle the <strong>Active</strong> switch to off</li>



<li>The script will not run on its schedule until re-enabled</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Deleting a script:</strong></p>



<ol class="wp-block-list">
<li>Select the script from the script library</li>



<li>Click the <strong>Delete</strong> icon</li>



<li>Confirm the deletion</li>
</ol>



<p class="wp-block-paragraph">Deleting a script removes it and its schedule permanently. Historical execution results and assessment data already forwarded to LT Auditor <sup>MP</sup> are retained and are not affected.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Best practices:</strong></p>



<ul class="wp-block-list">
<li>Use descriptive script names and descriptions so other administrators understand the purpose of each assessment without needing to read the code</li>



<li>Always test new scripts with <strong>Run Now</strong> before activating their schedule to confirm they produce the expected output</li>



<li>Use JSON output format wherever possible for clean, structured data forwarding to LT Auditor <sup>MP</sup></li>



<li>Stagger schedules across scripts and endpoints to avoid performance impacts during peak hours</li>



<li>Store scripts in source control outside of LT Auditor <sup>MP</sup> as a backup, especially for complex assessments</li>



<li>Review the script library regularly and remove or update scripts that are no longer relevant</li>



<li>Use the least privilege principle for the service account — scripts should only have the read access they need</li>
</ul>



<p class="wp-block-paragraph"><em>[Your administrator should document the purpose and expected output of each script in the library so the team can interpret assessment results correctly.]</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Linking Scripts to Alert Rules</title>
		<link>https://bluelance.com/docs/linking-scripts-to-alert-rules/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:21:02 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15874</guid>

					<description><![CDATA[PowerShell Orchestrator can be configured to run scripts automatically in response to security alerts generated by LT Auditor MP. This allows you to build automated remediation and investigation workflows — for example, automatically pulling a full group membership report the moment an unauthorized change to a privileged group is detected, or disabling a user account [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">PowerShell Orchestrator can be configured to run scripts automatically in response to security alerts generated by LT Auditor <sup>MP</sup>. This allows you to build automated remediation and investigation workflows — for example, automatically pulling a full group membership report the moment an unauthorized change to a privileged group is detected, or disabling a user account when a lockout threshold is exceeded.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Understanding alert-linked scripts:</strong></p>



<p class="wp-block-paragraph">When a script is linked to an alert rule, the following happens automatically:</p>



<ol class="wp-block-list">
<li>An incoming event matches the alert rule&#8217;s conditions</li>



<li>LT Auditor <sup>MP</sup> generates an alert</li>



<li>PowerShell Orchestrator immediately executes the linked script against the configured target</li>



<li>The script output is forwarded to LT Auditor <sup>MP</sup> and associated with the alert for investigation</li>
</ol>



<p class="wp-block-paragraph">This creates a closed-loop response — the alert fires, evidence is automatically collected, and the results are immediately available in the platform for review.</p>



<p class="wp-block-paragraph"><strong>Common alert-linked script use cases:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Alert Rule</strong></td><td><strong>Linked Script</strong></td><td><strong>Purpose</strong></td></tr><tr><td>Member added to Domain Admins</td><td>Domain Admins Membership Assessment</td><td>Capture the full group membership at the time of the change</td></tr><tr><td>User account lockout threshold exceeded</td><td>Account Status Check</td><td>Retrieve current account status and recent logon history</td></tr><tr><td>New local admin account created</td><td>Local Admin Accounts Assessment</td><td>Pull a full list of local admins on the affected machine</td></tr><tr><td>Entra ID role assignment change</td><td>Entra ID Role Assignments Assessment</td><td>Capture current role assignments at time of change</td></tr><tr><td>Suspicious sign-in detected</td><td>Account Activity Assessment</td><td>Retrieve recent sign-in history for the affected account</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><em>[Your administrator should define the automated response workflows most relevant to your environment and configure them accordingly.]</em></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Prerequisites:</strong></p>



<p class="wp-block-paragraph">Before linking a script to an alert rule, confirm the following:</p>



<ul class="wp-block-list">
<li>The alert rule is already created and active in LT Auditor <sup>MP</sup> (see Configuring Alert Rules)</li>



<li>The script is already created and tested in the PowerShell Orchestrator script library (see Creating and Scheduling Scripts)</li>



<li>The script&#8217;s target endpoint or cloud target is reachable and connected</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Linking a script to an alert rule:</strong></p>



<ol class="wp-block-list">
<li>Log in to the LT Auditor <sup>MP</sup> Web UI</li>



<li>Navigate to <strong>Manage</strong></li>



<li>Select the <strong>Environment</strong> and <strong>Category</strong> containing the alert rule</li>



<li>Locate the alert rule you want to link a script to and click the <strong>Edit</strong> icon</li>



<li>In the filter configuration, navigate to the <strong>Actions</strong> tab</li>



<li>Click <strong>Add Action</strong></li>



<li>Select <strong>Run PowerShell Script</strong> as the action type</li>



<li>Configure the action:
<ul class="wp-block-list">
<li><strong>Script</strong> — select the script from your PowerShell Orchestrator library</li>



<li><strong>Target Override</strong> (optional) — if the script should run against the machine that generated the alert rather than a fixed target, enable dynamic targeting</li>



<li><strong>Execution Delay</strong> (optional) — set a delay in seconds before the script runs, if needed</li>
</ul>
</li>



<li>Click <strong>Save Action</strong></li>



<li>Click <strong>Save</strong> to update the alert rule</li>
</ol>



<p class="wp-block-paragraph">The script will now run automatically every time this alert rule fires.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Using dynamic targeting:</strong></p>



<p class="wp-block-paragraph">By default, a linked script runs against the fixed target configured in the script definition. Dynamic targeting allows the script to instead run against the machine or user that generated the alert — making the response more relevant to the specific incident.</p>



<p class="wp-block-paragraph">To enable dynamic targeting:</p>



<ol class="wp-block-list">
<li>In the <strong>Run PowerShell Script</strong> action configuration, enable <strong>Dynamic Target</strong></li>



<li>Select the field from the alert event that identifies the target:
<ul class="wp-block-list">
<li><strong>Host</strong> — runs the script against the machine that generated the event</li>



<li><strong>User</strong> — passes the affected username as a parameter to the script</li>
</ul>
</li>



<li>Click <strong>Save</strong></li>
</ol>



<p class="wp-block-paragraph">Dynamic targeting requires that the identified machine is already a registered managed endpoint in PowerShell Orchestrator. If the machine is not registered, the script will fail to execute.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Viewing alert-linked script execution results:</strong></p>



<p class="wp-block-paragraph">When an alert fires and triggers a linked script, the execution results are available in two places:</p>



<p class="wp-block-paragraph"><strong>In the alert record:</strong></p>



<ol class="wp-block-list">
<li>Navigate to <strong>Alerts → Active Alerts</strong> or <strong>Alerts → Alert History</strong></li>



<li>Open the alert that triggered the script</li>



<li>Scroll to the <strong>Automated Response</strong> section</li>



<li>View the script execution status and output directly within the alert record</li>
</ol>



<p class="wp-block-paragraph"><strong>In the execution log:</strong></p>



<ol class="wp-block-list">
<li>Navigate to <strong>Configure → PowerShell Orchestrator → Execution Log</strong></li>



<li>Filter by <strong>Trigger Type — Alert</strong> to see all alert-triggered executions</li>



<li>Click any execution entry to view full output and status details</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Managing alert-linked scripts:</strong></p>



<p class="wp-block-paragraph"><strong>Removing a script link from an alert rule:</strong></p>



<ol class="wp-block-list">
<li>Open the alert rule in <strong>Manage</strong></li>



<li>Navigate to the <strong>Actions</strong> tab</li>



<li>Locate the <strong>Run PowerShell Script</strong> action</li>



<li>Click the <strong>Delete</strong> icon next to it</li>



<li>Click <strong>Save</strong></li>
</ol>



<p class="wp-block-paragraph"><strong>Temporarily suspending automated responses:</strong> If you need to stop automated script execution without modifying the alert rule itself, disable the script in the script library:</p>



<ol class="wp-block-list">
<li>Navigate to <strong>Configure → PowerShell Orchestrator → Scripts</strong></li>



<li>Open the linked script</li>



<li>Toggle the <strong>Active</strong> switch to off</li>



<li>The alert rule will continue to fire alerts, but the script will not execute until re-enabled</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Best practices:</strong></p>



<ul class="wp-block-list">
<li>Start with read-only assessment scripts for automated responses before implementing any scripts that make changes to your environment — collect evidence first, remediate manually until you are confident in the automation</li>



<li>Always test linked scripts manually using <strong>Run Now</strong> before activating the alert rule to confirm the output is as expected</li>



<li>Use dynamic targeting where possible so automated responses are relevant to the specific machine or user involved in the alert</li>



<li>Monitor the execution log regularly to confirm automated responses are firing correctly and producing useful output</li>



<li>Set an appropriate execution delay for scripts that need the triggering event to fully complete before the assessment runs</li>



<li>Document all alert-linked scripts and their intended purpose so the team understands what automated actions may occur in response to alerts</li>



<li>Review linked scripts periodically to ensure they are still appropriate as your environment evolves</li>
</ul>



<p class="wp-block-paragraph"><em>[Your administrator should establish a review process for automated response workflows, particularly any scripts that make changes to directory objects or account configurations.]</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Viewing Script Execution History</title>
		<link>https://bluelance.com/docs/viewing-script-execution-history/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:20:54 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15876</guid>

					<description><![CDATA[The PowerShell Orchestrator execution log provides a complete record of every script run — whether triggered by a schedule, run manually on demand, or fired automatically in response to an alert. Reviewing execution history regularly helps confirm that assessments are running as expected, identify scripts that are failing, and retrieve assessment output for investigation or [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The PowerShell Orchestrator execution log provides a complete record of every script run — whether triggered by a schedule, run manually on demand, or fired automatically in response to an alert. Reviewing execution history regularly helps confirm that assessments are running as expected, identify scripts that are failing, and retrieve assessment output for investigation or compliance purposes.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Accessing the execution log:</strong></p>



<ol class="wp-block-list">
<li>Log in to the LT Auditor <sup>MP</sup> Web UI</li>



<li>Navigate to <strong>Configure → PowerShell Orchestrator → Execution Log</strong></li>



<li>The execution log displays all script runs with the following information:</li>
</ol>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Column</strong></td><td><strong>Description</strong></td></tr><tr><td>Script Name</td><td>The name of the script that was executed</td></tr><tr><td>Target</td><td>The endpoint or cloud target the script ran against</td></tr><tr><td>Trigger Type</td><td>How the script was triggered — Scheduled, Manual, or Alert</td></tr><tr><td>Status</td><td>The outcome of the execution — Success, Failed, or Running</td></tr><tr><td>Started</td><td>The date and time the execution began</td></tr><tr><td>Completed</td><td>The date and time the execution finished</td></tr><tr><td>Duration</td><td>How long the script took to complete</td></tr><tr><td>Triggered By</td><td>The user or alert rule that initiated the execution</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Filtering the execution log:</strong></p>



<p class="wp-block-paragraph">To narrow down the execution log to specific runs:</p>



<ol class="wp-block-list">
<li>Use the filter bar at the top of the execution log</li>



<li>Filter by any combination of:
<ul class="wp-block-list">
<li><strong>Script Name</strong> — view runs for a specific script</li>



<li><strong>Target</strong> — view runs against a specific endpoint or cloud target</li>



<li><strong>Trigger Type</strong> — filter by Scheduled, Manual, or Alert</li>



<li><strong>Status</strong> — filter by Success, Failed, or Running</li>



<li><strong>Date Range</strong> — limit results to a specific time period</li>
</ul>
</li>



<li>Click <strong>Apply Filters</strong></li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Viewing execution details and output:</strong></p>



<p class="wp-block-paragraph">To view the full details and output of a specific script run:</p>



<ol class="wp-block-list">
<li>Locate the execution entry in the log</li>



<li>Click the entry to open the detail panel</li>



<li>The detail panel displays:
<ul class="wp-block-list">
<li><strong>Execution Status</strong> — Success, Failed, or Running</li>



<li><strong>Start and End Time</strong> — exact timestamps for the run</li>



<li><strong>Target</strong> — the endpoint or cloud target the script ran against</li>



<li><strong>Trigger</strong> — what initiated the execution (schedule name, user, or alert rule)</li>



<li><strong>Script Output</strong> — the full output returned by the script</li>



<li><strong>Error Messages</strong> — any errors encountered during execution</li>



<li><strong>Exit Code</strong> — the PowerShell exit code returned by the script</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Understanding execution statuses:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Status</strong></td><td><strong>Description</strong></td></tr><tr><td>Success</td><td>The script completed without errors and output was forwarded to LT Auditor <sup>MP</sup></td></tr><tr><td>Failed</td><td>The script encountered an error and did not complete successfully</td></tr><tr><td>Running</td><td>The script is currently executing — output not yet available</td></tr><tr><td>Timeout</td><td>The script exceeded the maximum allowed execution time and was terminated</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Investigating failed executions:</strong></p>



<p class="wp-block-paragraph">If a script shows a status of <strong>Failed</strong>, use the following steps to diagnose the issue:</p>



<ol class="wp-block-list">
<li>Open the failed execution entry in the log</li>



<li>Review the <strong>Error Messages</strong> section for details on what went wrong</li>



<li>Check the <strong>Exit Code</strong> — a non-zero exit code indicates a PowerShell error</li>
</ol>



<p class="wp-block-paragraph"><strong>Common failure causes:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Error</strong></td><td><strong>Likely Cause</strong></td><td><strong>Resolution</strong></td></tr><tr><td>Access denied</td><td>Service account lacks required permissions</td><td>Review and update service account permissions</td></tr><tr><td>WinRM connection refused</td><td>WinRM not running on target endpoint</td><td>Start the WinRM service on the target machine</td></tr><tr><td>Target unreachable</td><td>Network or firewall issue</td><td>Verify connectivity using Test-WSMan</td></tr><tr><td>Script timeout</td><td>Script taking too long to complete</td><td>Optimize the script or increase the timeout limit</td></tr><tr><td>Module not found</td><td>Required PowerShell module missing on target</td><td>Install the required module on the target endpoint</td></tr><tr><td>Authentication failure</td><td>Service account credentials expired</td><td>Update the service account credentials in the orchestrator configuration</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Viewing assessment results in LT Auditor <sup>MP</sup>:</strong></p>



<p class="wp-block-paragraph">Script output forwarded to LT Auditor <sup>MP</sup> is available in the View module alongside event data from other modules:</p>



<ol class="wp-block-list">
<li>Navigate to <strong>View</strong> in the Web UI</li>



<li>Select the environment and category relevant to your assessment (e.g., Active Directory, Entra ID)</li>



<li>Set the date range to cover the time of the script execution</li>



<li>Filter by:
<ul class="wp-block-list">
<li><strong>Source</strong> — select PowerShell Orchestrator</li>



<li><strong>Script Name</strong> — filter by the specific script if needed</li>
</ul>
</li>



<li>Review the structured assessment data returned by the script</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Exporting execution history:</strong></p>



<p class="wp-block-paragraph">To export the execution log for reporting or audit purposes:</p>



<ol class="wp-block-list">
<li>Apply your desired filters and date range</li>



<li>Click the <strong>Export</strong> button</li>



<li>Choose your format:
<ul class="wp-block-list">
<li><strong>CSV</strong> — for Excel or data analysis</li>



<li><strong>Excel</strong> — native Excel format</li>



<li><strong>PDF</strong> — for audit documentation</li>
</ul>
</li>



<li>Click <strong>Download</strong></li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Monitoring scheduled script health:</strong></p>



<p class="wp-block-paragraph">Use the execution log to confirm that scheduled scripts are running as expected:</p>



<ol class="wp-block-list">
<li>Filter the execution log by <strong>Trigger Type — Scheduled</strong></li>



<li>Review the most recent run for each scheduled script</li>



<li>Confirm:
<ul class="wp-block-list">
<li>The last run time matches the expected schedule</li>



<li>The status shows as <strong>Success</strong></li>



<li>The output contains the expected assessment data</li>
</ul>
</li>



<li>If a scheduled script has not run at its expected time, check:
<ul class="wp-block-list">
<li>The script is set to <strong>Active</strong> in the script library</li>



<li>The PowerShell Orchestrator service is running</li>



<li>The target endpoint is reachable</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Best practices:</strong></p>



<ul class="wp-block-list">
<li>Review the execution log at least weekly to confirm all scheduled assessments are running successfully</li>



<li>Investigate any failed executions promptly — a failing assessment script means a gap in your security posture visibility</li>



<li>Use the execution log as part of incident response to confirm that alert-linked scripts fired correctly and produced useful output</li>



<li>Retain execution history exports as supporting evidence for compliance audits</li>



<li>Set up an alert rule in LT Auditor <sup>MP</sup> to notify your team when a critical assessment script fails so issues are caught quickly rather than discovered during a log review</li>
</ul>



<p class="wp-block-paragraph"><em>[Your administrator should define which assessment scripts are considered critical and ensure alert notifications are configured for any failures in those scripts.]</em></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
