<?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>windows &#8211; Blue Lance</title>
	<atom:link href="https://bluelance.com/docs-tag/windows/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>windows &#8211; Blue Lance</title>
	<link>https://bluelance.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Prerequisites for Azure Log Connector</title>
		<link>https://bluelance.com/docs/prerequisites-for-azurelogconnector/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:23:10 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15895</guid>

					<description><![CDATA[Prerequisites for Azure Log Connector Before installing and configuring Azure Log Connector, several prerequisites must be in place in both your Microsoft Azure environment and your LT Auditor MP deployment. This article covers everything that needs to be confirmed or prepared before proceeding with installation. LT Auditor MP prerequisites: Requirement Details LT Auditor MP Server [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"><strong>Prerequisites for Azure Log Connector</strong></h3>



<p class="wp-block-paragraph">Before installing and configuring Azure Log Connector, several prerequisites must be in place in both your Microsoft Azure environment and your LT Auditor <sup>MP</sup> deployment. This article covers everything that needs to be confirmed or prepared before proceeding with installation.</p>



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



<p class="wp-block-paragraph"><strong>LT Auditor <sup>MP</sup> prerequisites:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Requirement</strong></td><td><strong>Details</strong></td></tr><tr><td>LT Auditor <sup>MP</sup> Server</td><td>Must be installed and running</td></tr><tr><td>Network Access — Inbound</td><td>LT Auditor <sup>MP</sup> syslog listener must be active on the configured port (default: 5050)</td></tr><tr><td>Download Package</td><td>lta-mp-azurelogcollector.zip obtained from your administrator or Blue Lance</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><em>[Your administrator should confirm the exact download location for the Azure Log Connector package in your environment.]</em></p>



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



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



<p class="wp-block-paragraph">The machine where Azure Log Connector will be installed must meet the following requirements:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Requirement</strong></td><td><strong>Details</strong></td></tr><tr><td>Operating System</td><td>Windows Server 2019 or newer</td></tr><tr><td>Internet Connectivity</td><td>Outbound HTTPS access to Microsoft Graph and Office 365 Management APIs</td></tr><tr><td>Administrative Access</td><td>Local administrator privileges required for installation and configuration</td></tr><tr><td>Network Access — Outbound</td><td>Must be able to reach the LT Auditor <sup>MP</sup> syslog listener on the configured port (default: 5050)</td></tr><tr><td>Azure Portal Access</td><td>Access to the Azure Portal to create and configure the App Registration</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph"><strong>Required outbound network access:</strong></p>



<p class="wp-block-paragraph">Azure Log Connector requires outbound HTTPS access to the following Microsoft API endpoints. Confirm these are not blocked by your firewall or proxy:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Endpoint</strong></td><td><strong>Purpose</strong></td></tr><tr><td>https://graph.microsoft.com</td><td>Microsoft Graph API — Entra ID sign-in logs, audit logs, identity protection events</td></tr><tr><td>https://manage.office.com</td><td>Office 365 Management API — SharePoint Online and OneDrive activity logs</td></tr><tr><td>https://login.microsoftonline.com</td><td>Microsoft identity platform — authentication for the App Registration</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Test connectivity from the Azure Log Connector server to each endpoint:</p>



<p class="wp-block-paragraph">Test-NetConnection -ComputerName graph.microsoft.com -Port 443</p>



<p class="wp-block-paragraph">Test-NetConnection -ComputerName manage.office.com -Port 443</p>



<p class="wp-block-paragraph">Test-NetConnection -ComputerName login.microsoftonline.com -Port 443</p>



<p class="wp-block-paragraph">All three should return a successful result. If any connection fails, work with your network team to allow outbound HTTPS traffic to those endpoints.</p>



<p class="wp-block-paragraph"><em>[Your administrator should confirm whether outbound internet access from the installation server requires proxy configuration, and if so, ensure the proxy settings are configured before proceeding.]</em></p>



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



<p class="wp-block-paragraph"><strong>Microsoft Entra ID prerequisites:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Requirement</strong></td><td><strong>Details</strong></td></tr><tr><td>Active Entra ID Tenant</td><td>An active Microsoft Entra ID (Azure AD) tenant</td></tr><tr><td>Azure Portal Access</td><td>Global Administrator or Application Administrator privileges to create App Registrations</td></tr><tr><td>App Registration</td><td>A dedicated App Registration created for Azure Log Connector</td></tr><tr><td>API Permissions</td><td>Microsoft Graph and Office 365 Management API permissions granted with admin consent</td></tr><tr><td>Client Secret</td><td>A client secret generated for the App Registration</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph"><strong>Required API permissions:</strong></p>



<p class="wp-block-paragraph">The App Registration used by Azure Log Connector requires the following permissions. All permissions are <strong>Application</strong> type — not Delegated — as Azure Log Connector runs as a background service without a signed-in user. All permissions require <strong>Admin Consent</strong> from a Global Administrator.</p>



<p class="wp-block-paragraph"><strong>Microsoft Graph — Application Permissions:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Permission</strong></td><td><strong>Purpose</strong></td></tr><tr><td>AuditLog.Read.All</td><td>Read Entra ID audit logs and sign-in logs</td></tr><tr><td>Directory.Read.All</td><td>Read directory objects including users, groups, and roles</td></tr><tr><td>Application.Read.All</td><td>Read application registrations and service principals</td></tr><tr><td>Domain.Read.All</td><td>Read domain information</td></tr><tr><td>Files.Read.All</td><td>Read files across the organization</td></tr><tr><td>GroupMember.Read.All</td><td>Read group memberships</td></tr><tr><td>IdentityProvider.Read.All</td><td>Read identity provider configurations</td></tr><tr><td>IdentityRiskyServicePrincipal.Read.All</td><td>Read risky service principal detections</td></tr><tr><td>IdentityRiskyUser.Read.All</td><td>Read risky user detections</td></tr><tr><td>Policy.Read.All</td><td>Read conditional access and other policies</td></tr><tr><td>RoleManagementAlert.Read.Directory</td><td>Read role management alerts</td></tr><tr><td>User.Export.All</td><td>Export user data</td></tr><tr><td>User.Read.All</td><td>Read user profiles</td></tr><tr><td>UserAuthenticationMethod.Read.All</td><td>Read user authentication methods including MFA</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Office 365 Management APIs — Application Permissions:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Permission</strong></td><td><strong>Purpose</strong></td></tr><tr><td>ActivityFeed.Read</td><td>Read SharePoint Online and OneDrive activity logs</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">This is a significantly broader set of permissions than the previous EntraConnector module required, reflecting the expanded scope of Azure Log Connector across both Entra ID and Microsoft 365. All permissions require Admin Consent before they become active.</p>



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



<p class="wp-block-paragraph"><strong>Microsoft 365 license requirements:</strong></p>



<p class="wp-block-paragraph">Access to certain log categories requires appropriate Microsoft licensing. Confirm the following with your Microsoft licensing administrator:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Log Category</strong></td><td><strong>Minimum License Required</strong></td></tr><tr><td>Entra ID Audit Logs</td><td>Microsoft Entra ID Free</td></tr><tr><td>Sign-In Logs</td><td>Microsoft Entra ID P1 or P2</td></tr><tr><td>Risky Sign-Ins &amp; Identity Protection</td><td>Microsoft Entra ID P2</td></tr><tr><td>SharePoint Online Activity Logs</td><td>Microsoft 365 Business Standard or above</td></tr><tr><td>OneDrive Activity Logs</td><td>Microsoft 365 Business Standard or above</td></tr><tr><td>Conditional Access Activity</td><td>Microsoft Entra ID P1 or P2</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><em>[Your administrator should confirm your organization&#8217;s current Microsoft 365 and Entra ID license tiers and which log categories are available before configuring Azure Log Connector.]</em></p>



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



<p class="wp-block-paragraph"><strong>Roles required for setup:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Task</strong></td><td><strong>Required Role</strong></td></tr><tr><td>Create the App Registration</td><td>Global Administrator or Application Administrator</td></tr><tr><td>Grant Admin Consent for API permissions</td><td>Global Administrator</td></tr><tr><td>Install Azure Log Connector</td><td>Local Administrator on the installation server</td></tr><tr><td>Configure Azure Log Connector in LT Auditor <sup>MP</sup></td><td>LT Auditor <sup>MP</sup> Administrator</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><em>[Your administrator should coordinate with your Azure or Microsoft 365 administrator to complete the App Registration steps if they do not have access to the Azure Portal.]</em></p>



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



<p class="wp-block-paragraph"><strong>Information to gather before installation:</strong></p>



<p class="wp-block-paragraph">Before proceeding to the App Registration and installation steps, gather the following. You will need all of these values during configuration:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Item</strong></td><td><strong>Where to Find It</strong></td><td><strong>Notes</strong></td></tr><tr><td>Tenant ID</td><td>Azure Portal → Microsoft Entra ID → Overview</td><td>Also called Directory ID</td></tr><tr><td>Client ID</td><td>Azure Portal → App Registrations → your app → Overview</td><td>Also called Application ID</td></tr><tr><td>Client Secret</td><td>Azure Portal → App Registrations → your app → Certificates &amp; Secrets</td><td>Copy immediately — only shown once</td></tr><tr><td>LT Auditor <sup>MP</sup> Server IP or Hostname</td><td>Your LT Auditor <sup>MP</sup> installation</td><td>Needed during configuration</td></tr><tr><td>Syslog Port</td><td>LT Auditor <sup>MP</sup> <br>Configure → Transformation Rules</td><td>Default: 5050</td></tr><tr><td>Syslog Protocol</td><td>LT Auditor <sup>MP</sup> <br>Configure → Transformation Rules</td><td>UDP, TCP, or TLS</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The Client Secret value is only displayed once at the time of creation. Copy it immediately and store it securely. If the secret is lost, a new one must be generated.</p>



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



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



<p class="wp-block-paragraph">Before proceeding to the next article, confirm all of the following:</p>



<ul class="wp-block-list">
<li>[ ] Installation server meets Windows Server 2019 or newer requirement</li>



<li>[ ] Outbound HTTPS access confirmed to all three Microsoft API endpoints</li>



<li>[ ] LT Auditor <sup>MP</sup> server is installed and running</li>



<li>[ ] LT Auditor <sup>MP</sup> syslog listener is active on the configured port</li>



<li>[ ] Azure Portal access with appropriate privileges is available</li>



<li>[ ] Microsoft 365 and Entra ID license tiers confirmed</li>



<li>[ ] Tenant ID, Client ID, and Client Secret are ready to hand</li>



<li>[ ] LT Auditor <sup>MP</sup> syslog port and protocol are confirmed</li>
</ul>



<p class="wp-block-paragraph"><em>[Your administrator should complete this checklist before proceeding to the Registering the App in Microsoft Entra ID article to avoid interruptions during setup.]</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What is Azure Log Collector?</title>
		<link>https://bluelance.com/docs/what-is-entraconnector/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:22:53 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15893</guid>

					<description><![CDATA[Azure Log Connector is the Microsoft Azure and Microsoft 365 audit log collection module for LT Auditor MP. It is designed to collect a broad range of cloud activity logs from your Microsoft Azure tenant and Microsoft 365 environment and forward them to LT Auditor MP for centralized monitoring, alerting, and compliance reporting. Azure Log [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Azure Log Connector is the Microsoft Azure and Microsoft 365 audit log collection module for LT Auditor <sup>MP</sup>. It is designed to collect a broad range of cloud activity logs from your Microsoft Azure tenant and Microsoft 365 environment and forward them to LT Auditor <sup>MP</sup> for centralized monitoring, alerting, and compliance reporting.</p>



<p class="wp-block-paragraph">Azure Log Connector replaces and significantly expands on the previous EntraConnector module. Where EntraConnector focused primarily on Entra ID identity events, Azure Log Connector extends coverage to include Microsoft 365 collaboration activity — including SharePoint Online and OneDrive — giving organizations a much more complete picture of their cloud environment.</p>



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



<p class="wp-block-paragraph"><strong>What Azure Log Connector collects:</strong></p>



<p class="wp-block-paragraph">Azure Log Connector collects the following categories of cloud audit activity:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Log Category</strong></td><td><strong>Description</strong></td></tr><tr><td>Azure Sign-In Logs</td><td>All user and service principal authentication activity in Entra ID</td></tr><tr><td>Microsoft Entra ID Audit Logs</td><td>Directory changes including user, group, role, and application modifications</td></tr><tr><td>SharePoint Online Activity Logs</td><td>File access, sharing, and permission changes in SharePoint Online</td></tr><tr><td>OneDrive Activity Logs</td><td>File access, uploads, downloads, and sharing activity in OneDrive</td></tr><tr><td>Risky Sign-Ins &amp; Identity Protection Events</td><td>Sign-ins flagged as potentially risky by Entra ID Identity Protection</td></tr><tr><td>Conditional Access &amp; Authentication Activity</td><td>Conditional access policy evaluation results and MFA activity</td></tr><tr><td>Azure User and Group Changes</td><td>User account and group membership changes in Entra ID</td></tr><tr><td>Administrative Activity &amp; Role Changes</td><td>Privileged role assignments and administrative actions in Entra ID</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph"><strong>How Azure Log Connector works:</strong></p>



<p class="wp-block-paragraph">Azure Log Connector is installed as a Windows service on a server in your environment. It connects to Microsoft Azure and Microsoft 365 using a registered App Registration in Microsoft Entra ID, polls for new audit log entries on a configurable interval, and forwards collected events to the LT Auditor <sup>MP</sup> server via syslog.</p>



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



<ol class="wp-block-list">
<li>Azure Log Connector authenticates to Microsoft Graph and the Office 365 Management APIs using the configured App Registration credentials</li>



<li>The collector polls for new events across all enabled log categories at the configured interval (default: every 5 minutes)</li>



<li>Collected events are forwarded to the LT Auditor <sup>MP</sup> server via syslog on the configured port (default: 5050)</li>



<li>Events are processed by LT Auditor <sup>MP</sup> transformation rules and stored in the database</li>



<li>Collected data becomes available in the LT Auditor <sup>MP</sup> dashboard, View module, alert rules, and compliance reports</li>
</ol>



<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>Collection of sign-in, audit, and identity protection logs from Microsoft Entra ID</li>



<li>Collection of SharePoint Online and OneDrive activity logs from Microsoft 365</li>



<li>Configurable polling intervals and batch sizes for efficient API usage</li>



<li>Lookback capability on startup to recover events missed during downtime</li>



<li>Support for UDP, TCP, and TLS syslog transport to LT Auditor <sup>MP</sup></li>



<li>Configurable per-category enable/disable via appsettings.json</li>



<li>Raw API response logging for troubleshooting purposes</li>



<li>Integration with LT Auditor <sup>MP</sup> alerting, reporting, and compliance frameworks</li>
</ul>



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



<ul class="wp-block-list">
<li>Monitoring privileged role assignments and administrative changes in Entra ID</li>



<li>Detecting suspicious or risky sign-in activity across your Microsoft 365 tenant</li>



<li>Auditing SharePoint Online and OneDrive file access and sharing for data governance</li>



<li>Tracking conditional access policy changes that may affect your security posture</li>



<li>Producing compliance evidence for GDPR, HIPAA, NIS2, ISO 27001, and other frameworks</li>



<li>Gaining unified visibility across both on-premises and Microsoft cloud environments</li>
</ul>



<p class="wp-block-paragraph"><strong>How Azure Log Connector fits into LT Auditor <sup>MP</sup>:</strong></p>



<p class="wp-block-paragraph">Azure Log Connector acts as the Microsoft cloud data collection layer for LT Auditor <sup>MP</sup>. It works alongside other modules — EventLogCentral for Windows on-premises activity, PowerShell Orchestrator for Active Directory assessments, and PII Scanner for sensitive data discovery — to give LT Auditor <sup>MP</sup> comprehensive coverage across your entire environment, from on-premises infrastructure to the Microsoft cloud.</p>



<p class="wp-block-paragraph"><strong>Prerequisites for Azure Log Connector:</strong></p>



<ul class="wp-block-list">
<li>Windows Server 2019 or newer</li>



<li>Internet connectivity to Microsoft Graph and Office 365 APIs</li>



<li>Administrative access to the server</li>



<li>Access to the Azure Portal with permissions to create App Registrations</li>



<li>LT Auditor <sup>MP</sup> server installed and running</li>



<li>Outbound network access to the LT Auditor <sup>MP</sup> syslog listener port</li>
</ul>



<p class="wp-block-paragraph"><em>[Your administrator should confirm which Microsoft 365 services and Azure log categories are in scope for collection in your environment, and ensure the App Registration is created by someone with the appropriate privileges in your Azure tenant.]</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Running an On-Demand Scan</title>
		<link>https://bluelance.com/docs/running-an-on-demand-scan/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:22:05 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15889</guid>

					<description><![CDATA[While scheduled scans handle routine data discovery automatically, there are situations where you need to run a scan immediately — in response to a security incident, ahead of an audit, when a new file share is provisioned, or when investigating a specific location for sensitive data. This article covers how to create and monitor an [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">While scheduled scans handle routine data discovery automatically, there are situations where you need to run a scan immediately — in response to a security incident, ahead of an audit, when a new file share is provisioned, or when investigating a specific location for sensitive data. This article covers how to create and monitor an on-demand scan job in PII Scanner.</p>



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



<p class="wp-block-paragraph"><strong>When to run an on-demand scan:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Situation</strong></td><td><strong>Reason</strong></td></tr><tr><td>New file server or share provisioned</td><td>Establish a baseline of sensitive data present from the start</td></tr><tr><td>Security incident involving file access</td><td>Determine whether sensitive data was present in accessed locations</td></tr><tr><td>Pre-audit preparation</td><td>Confirm current state of sensitive data across key directories</td></tr><tr><td>New department or team onboarded</td><td>Scan newly created shared directories before they are widely used</td></tr><tr><td>Remediation verification</td><td>Confirm sensitive data has been removed after remediation</td></tr><tr><td>Ad-hoc compliance check</td><td>Spot-check a specific location in response to a compliance query</td></tr></tbody></table></figure>



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



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



<p class="wp-block-paragraph">Before running an on-demand scan confirm the following:</p>



<ul class="wp-block-list">
<li>At least one PII Scanner Agent is registered and showing as <strong>Online</strong> in the Clients page</li>



<li>The intended agent has read access to the path you want to scan</li>



<li>At least one target is configured in the Targets page</li>



<li>The PII detection classes relevant to your scan are enabled in the PII Classes page</li>
</ul>



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



<p class="wp-block-paragraph"><strong>Creating an on-demand scan job:</strong></p>



<ol class="wp-block-list">
<li>Log in to the PII Scanner Server web interface at:</li>
</ol>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://&lt;server-name>:52766
</div></figure>



<ol start="2" class="wp-block-list">
<li>Navigate to <strong>Jobs</strong></li>



<li>Click <strong>Add Job</strong></li>



<li>Configure the job:</li>
</ol>



<p class="wp-block-paragraph"><strong>Job Name</strong> Use a name that clearly identifies this as an on-demand scan and captures its context:</p>



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



<p class="wp-block-paragraph">On-Demand — HR Share Audit Prep — June 2026</p>



<p class="wp-block-paragraph">Incident Response Scan — FileServer01 — 2026-06-08</p>



<p class="wp-block-paragraph">New Share Baseline — Finance Q2 2026</p>



<p class="wp-block-paragraph"><strong>Client</strong> Select the agent that has access to the path you want to scan. Confirm the agent shows as <strong>Online</strong> in the dropdown.</p>



<p class="wp-block-paragraph"><strong>Path to Scan</strong> Enter the full path to the directory or share to scan:</p>



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



<p class="wp-block-paragraph">\\fileserver01\departments\hr</p>



<p class="wp-block-paragraph">C:\SensitiveData</p>



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



<p class="wp-block-paragraph">/mnt/shares/finance</p>



<p class="wp-block-paragraph">/home/shared/legal</p>



<p class="wp-block-paragraph"><strong>Include Extensions</strong> <em>(optional)</em> For a focused on-demand scan, limit to the most relevant file types to reduce scan time:</p>



<p class="wp-block-paragraph">*.docx, *.xlsx, *.pdf, *.txt, *.csv</p>



<p class="wp-block-paragraph">Leave blank for a comprehensive sweep of all file types — recommended for incident response scans.</p>



<p class="wp-block-paragraph"><strong>PII Classes</strong> Select the PII detection classes to apply. For incident response or pre-audit scans consider enabling all available classes for maximum coverage.</p>



<p class="wp-block-paragraph"><strong>Target Host</strong> Select your LT Auditor-MP server as the destination for scan results.</p>



<ol start="5" class="wp-block-list">
<li>Click <strong>Queue Job</strong></li>
</ol>



<p class="wp-block-paragraph">The job is submitted immediately with a status of <strong>Queued</strong>. The assigned agent will claim it on its next poll cycle and begin scanning.</p>



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



<p class="wp-block-paragraph"><strong>Monitoring the scan:</strong></p>



<ol class="wp-block-list">
<li>Navigate to <strong>Jobs</strong></li>



<li>Locate your job — the status updates from <strong>Queued</strong> to <strong>Running</strong> once the agent claims it</li>



<li>Review job progress:</li>
</ol>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Field</strong></td><td><strong>Description</strong></td></tr><tr><td>Status</td><td>Current job state — Queued, Running, Succeeded, or Failed</td></tr><tr><td>Started</td><td>When the agent claimed and began the scan</td></tr><tr><td>Records Processed</td><td>Number of files scanned so far</td></tr><tr><td>Completed</td><td>Populated when the scan finishes</td></tr></tbody></table></figure>



<ol start="4" class="wp-block-list">
<li>Refresh the page periodically to see updated progress</li>
</ol>



<p class="wp-block-paragraph">For large directories scans can take significant time. PII matches are forwarded to LT Auditor-MP in real time as they are found — you do not need to wait for the scan to complete before reviewing results.</p>



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



<p class="wp-block-paragraph"><strong>Viewing results as the scan runs:</strong></p>



<p class="wp-block-paragraph">Because PII matches are forwarded to LT Auditor-MP in real time you can begin reviewing results before the scan completes:</p>



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



<li>Navigate to <strong>View</strong></li>



<li>Select the PII Scanner environment and category</li>



<li>Set the date range to <strong>Today</strong> or <strong>Last Hour</strong></li>



<li>Results populate as the agent finds and forwards matches</li>



<li>Click any result row to view full details:
<ul class="wp-block-list">
<li><strong>File Path</strong> — where the PII was found</li>



<li><strong>PII Class</strong> — the type of sensitive data matched</li>



<li><strong>Timestamp</strong> — when the match was detected</li>
</ul>
</li>
</ol>



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



<p class="wp-block-paragraph"><strong>Confirming scan completion:</strong></p>



<ol class="wp-block-list">
<li>Return to the PII Scanner Server web interface</li>



<li>Navigate to <strong>Jobs</strong></li>



<li>Confirm the job status has updated to <strong>Succeeded</strong></li>



<li>Note the <strong>Completed</strong> timestamp and <strong>Records Processed</strong> count for your records</li>
</ol>



<p class="wp-block-paragraph">If the job status shows <strong>Failed:</strong></p>



<ol class="wp-block-list">
<li>Review the result details in the job record for error information<br></li>
</ol>



<p class="wp-block-paragraph">Check the agent logs for more specific error details:<br><br>Linux:<br><br>cat /opt/bluelance/scanner/scanner.log</p>



<p class="wp-block-paragraph">&nbsp;Windows:<br><br>C:\Program Files\Blue Lance 2-0\LTA_PII_Scanner_Agent\logs\</p>



<ol start="2" class="wp-block-list">
<li></li>



<li>Resolve the identified issue and create a new job to rerun the scan if needed<br></li>
</ol>



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



<p class="wp-block-paragraph"><strong>Documenting on-demand scan results:</strong></p>



<p class="wp-block-paragraph">For scans run in response to audits, incidents, or compliance queries, document the scan and its results:</p>



<ol class="wp-block-list">
<li>Note the job name, scan path, date, time, assigned agent, and PII classes used</li>



<li>In LT Auditor-MP navigate to <strong>View</strong> and filter for the scan results</li>



<li>Export the results:
<ul class="wp-block-list">
<li>Click <strong>Export</strong></li>



<li>Choose <strong>PDF</strong> for audit submission or <strong>CSV</strong> for detailed analysis</li>



<li>Click <strong>Download</strong></li>
</ul>
</li>



<li>Retain the export as evidence of the data discovery activity</li>
</ol>



<p class="wp-block-paragraph"><em>[Your administrator should establish a standard process for documenting and retaining on-demand scan records, particularly those run in response to security incidents or compliance audits.]</em></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>Always confirm the assigned agent is Online before creating a job — a job assigned to an Offline agent will remain Queued indefinitely</li>



<li>For incident response scans leave the Include Extensions field blank and enable all PII classes for maximum coverage</li>



<li>Use descriptive job names that capture the date, scope, and reason for the scan so the Jobs page serves as an auditable record</li>



<li>Begin reviewing results in LT Auditor-MP as the scan runs rather than waiting for completion — this is especially important during incident response</li>



<li>Export and retain scan results immediately after completion, particularly for incident response or audit-driven scans</li>



<li>For recurring scans of the same path consider creating a schedule rather than repeatedly creating manual jobs</li>
</ul>



<p class="wp-block-paragraph"><em>[Your administrator should document the on-demand scan process as part of your organization&#8217;s incident response and compliance procedures so it can be followed consistently by any team member.]</em></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Reviewing Scan Results</title>
		<link>https://bluelance.com/docs/reviewing-scan-results/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:22:01 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15891</guid>

					<description><![CDATA[All PII matches detected by PII Scanner agents are forwarded in real time to LT Auditor-MP via the configured target destination. Scan results are reviewed, investigated, and acted on entirely within the LT Auditor-MP Web UI — the PII Scanner Server does not store scan result data. This article covers how to find, interpret, filter, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">All PII matches detected by PII Scanner agents are forwarded in real time to LT Auditor-MP via the configured target destination. Scan results are reviewed, investigated, and acted on entirely within the LT Auditor-MP Web UI — the PII Scanner Server does not store scan result data. This article covers how to find, interpret, filter, and act on PII scan results in LT Auditor-MP.</p>



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



<p class="wp-block-paragraph"><strong>Understanding scan results:</strong></p>



<p class="wp-block-paragraph">Each result record forwarded to LT Auditor-MP represents a single PII match found in a scanned file. A single file may generate multiple result records if it contains multiple types of PII or multiple instances of the same PII type.</p>



<p class="wp-block-paragraph">Each result record includes:</p>



<ul class="wp-block-list">
<li><strong>File Path</strong> — the full path to the file where the match was found</li>



<li><strong>PII Class</strong> — the type of sensitive data detected</li>



<li><strong>Class Type</strong> — the category of the detected class (PII, PHI, Sensitive, Confidential, or Private)</li>



<li><strong>Timestamp</strong> — when the match was detected during the scan</li>



<li><strong>Agent</strong> — the client agent that performed the scan</li>



<li><strong>Job Name</strong> — the scan job that generated the result</li>
</ul>



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



<p class="wp-block-paragraph"><strong>Accessing scan results in LT Auditor-MP:</strong></p>



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



<li>Navigate to <strong>View</strong> in the main navigation menu</li>



<li>Select the view configured for PII Scanner data or create a new one:
<ul class="wp-block-list">
<li>Click <strong>Create View</strong></li>



<li>Set the <strong>Environment</strong> to your PII Scanner environment</li>



<li>Set the <strong>Category</strong> to PII Scan Results</li>



<li>Set a default date range</li>



<li>Click <strong>Save</strong></li>
</ul>
</li>



<li>The log table populates with PII match records from your scans</li>
</ol>



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



<p class="wp-block-paragraph"><strong>Filtering scan results:</strong></p>



<p class="wp-block-paragraph"><strong>Filter by job name:</strong></p>



<ol class="wp-block-list">
<li>Click <strong>Advanced Filters</strong></li>



<li>Add a condition:
<ul class="wp-block-list">
<li><strong>Field</strong> — Job Name</li>



<li><strong>Operator</strong> — Equals</li>



<li><strong>Value</strong> — the name of the specific scan job</li>
</ul>
</li>



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



<p class="wp-block-paragraph"><strong>Filter by PII class:</strong></p>



<ol class="wp-block-list">
<li>Click <strong>Advanced Filters</strong></li>



<li>Add a condition:
<ul class="wp-block-list">
<li><strong>Field</strong> — PII Class</li>



<li><strong>Operator</strong> — Equals or Contains</li>



<li><strong>Value</strong> — the class name to focus on (e.g., Social Security Number)</li>
</ul>
</li>



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



<p class="wp-block-paragraph"><strong>Filter by class type:</strong></p>



<ol class="wp-block-list">
<li>Click <strong>Advanced Filters</strong></li>



<li>Add a condition:
<ul class="wp-block-list">
<li><strong>Field</strong> — Class Type</li>



<li><strong>Operator</strong> — Equals</li>



<li><strong>Value</strong> — PII, PHI, Sensitive, Confidential, or Private</li>
</ul>
</li>



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



<p class="wp-block-paragraph"><strong>Filter by file path:</strong></p>



<ol class="wp-block-list">
<li>Click <strong>Advanced Filters</strong></li>



<li>Add a condition:
<ul class="wp-block-list">
<li><strong>Field</strong> — File Path</li>



<li><strong>Operator</strong> — Starts With or Contains</li>



<li><strong>Value</strong> — the directory path to focus on</li>
</ul>
</li>



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



<p class="wp-block-paragraph"><strong>Filter by agent:</strong></p>



<ol class="wp-block-list">
<li>Click <strong>Advanced Filters</strong></li>



<li>Add a condition:
<ul class="wp-block-list">
<li><strong>Field</strong> — Agent</li>



<li><strong>Operator</strong> — Equals</li>



<li><strong>Value</strong> — the hostname of the agent that performed the scan</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>Interpreting scan results:</strong></p>



<p class="wp-block-paragraph">When reviewing results focus on the following questions:</p>



<p class="wp-block-paragraph"><strong>Is the sensitive data in an expected location?</strong> PII found in designated access-controlled directories is expected. PII found in unexpected locations — a public share, a developer&#8217;s working directory, or a temporary folder — requires immediate attention and remediation.</p>



<p class="wp-block-paragraph"><strong>Is the class type appropriate for the location?</strong> PHI in a healthcare application directory may be expected. PHI in a general file share is not. Review whether the type of sensitive data found makes sense for the location it was discovered in.</p>



<p class="wp-block-paragraph"><strong>How many files are affected?</strong> A single match in one file is very different from hundreds of matches across many files. Use grouping and aggregation in LT Auditor-MP reports to understand the scale of findings across a scan.</p>



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



<p class="wp-block-paragraph"><strong>Viewing full result details:</strong></p>



<ol class="wp-block-list">
<li>Click on any result row in the log table</li>



<li>The detail panel opens and displays:
<ul class="wp-block-list">
<li><strong>File Path</strong> — full path to the affected file</li>



<li><strong>PII Class</strong> — the type of sensitive data detected</li>



<li><strong>Class Type</strong> — PII, PHI, Sensitive, Confidential, or Private</li>



<li><strong>Timestamp</strong> — when the match was detected</li>



<li><strong>Agent</strong> — which client agent found the match</li>



<li><strong>Job Name</strong> — which scan job generated the result</li>



<li><strong>Raw Log</strong> — the original forwarded syslog record</li>
</ul>
</li>



<li>Click <strong>Close</strong> to return to the results table</li>
</ol>



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



<p class="wp-block-paragraph"><strong>Identifying false positives:</strong></p>



<p class="wp-block-paragraph">Not every match represents a genuine sensitive data finding. Some regex patterns may produce false positives — matches that technically satisfy the pattern but do not represent real sensitive data. Use the file path and raw log context to validate whether a match represents actual sensitive data before acting on it.</p>



<p class="wp-block-paragraph">If a PII class is consistently generating false positives:</p>



<ol class="wp-block-list">
<li>Navigate to <strong>PII Classes</strong> in the PII Scanner Server web interface</li>



<li>Review and tighten the regex pattern for the relevant class</li>



<li>Consider disabling the class temporarily if the false positive rate is too high to manage</li>
</ol>



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



<p class="wp-block-paragraph"><strong>Acting on scan results:</strong></p>



<p class="wp-block-paragraph">When genuine sensitive data is found in an unexpected or unauthorized location:</p>



<p class="wp-block-paragraph"><strong>1. Document the finding:</strong></p>



<ul class="wp-block-list">
<li>Export the relevant results from LT Auditor-MP as PDF or CSV</li>



<li>Note the file path, PII class, class type, scan date, and agent</li>
</ul>



<p class="wp-block-paragraph"><strong>2. Assess the risk:</strong></p>



<ul class="wp-block-list">
<li>Determine who has access to the location where the sensitive data was found</li>



<li>Review access logs in LT Auditor-MP to determine whether the file has been accessed recently</li>



<li>Assess whether the finding represents a compliance violation that must be reported</li>
</ul>



<p class="wp-block-paragraph"><strong>3. Remediate:</strong></p>



<ul class="wp-block-list">
<li>Work with the file owner or relevant department to relocate, encrypt, or delete the sensitive file</li>



<li>Review and update access controls on the affected location</li>



<li>Run a follow-up on-demand scan of the same path after remediation to confirm the sensitive data has been successfully addressed</li>
</ul>



<p class="wp-block-paragraph"><strong>4. Report:</strong></p>



<ul class="wp-block-list">
<li>If the finding represents a compliance violation follow your organization&#8217;s incident response and breach notification procedures</li>



<li>Retain scan results and remediation records as evidence for compliance audits</li>
</ul>



<p class="wp-block-paragraph"><em>[Your administrator should define a standard remediation workflow for PII findings and ensure all team members know how to follow it.]</em></p>



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



<p class="wp-block-paragraph"><strong>Generating PII scan reports in LT Auditor-MP:</strong></p>



<p class="wp-block-paragraph">For compliance documentation and management reporting, generate structured reports from PII scan results:</p>



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



<li>Click <strong>Create Report</strong></li>



<li>Configure the report:
<ul class="wp-block-list">
<li><strong>Environment</strong> — PII Scanner environment</li>



<li><strong>Category</strong> — PII Scan Results</li>



<li><strong>Date Range</strong> — the period to cover</li>
</ul>
</li>



<li>Under <strong>Columns</strong> include:
<ul class="wp-block-list">
<li>File Path</li>



<li>PII Class</li>



<li>Class Type</li>



<li>Timestamp</li>



<li>Agent</li>



<li>Job Name</li>
</ul>
</li>



<li>Under <strong>Grouping</strong> consider grouping by:
<ul class="wp-block-list">
<li><strong>PII Class</strong> — to see a breakdown of finding types</li>



<li><strong>Class Type</strong> — to distinguish PII from PHI and other categories</li>



<li><strong>File Path</strong> — to identify the most affected locations</li>
</ul>
</li>



<li>Click <strong>Save</strong> and then <strong>Generate Report</strong></li>



<li>Download the report as PDF for audit submission or CSV for detailed analysis</li>
</ol>



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



<p class="wp-block-paragraph"><strong>Setting up alerts for PII findings:</strong></p>



<p class="wp-block-paragraph">Configure LT Auditor-MP to alert your team when PII matches are detected during a scan:</p>



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



<li>Select the PII Scanner environment and category</li>



<li>Click <strong>Add Filter</strong></li>



<li>Configure the filter:
<ul class="wp-block-list">
<li><strong>Filter Name</strong> — e.g., PHI Finding Alert</li>



<li><strong>Condition</strong> — Class Type Equals PHI</li>



<li><strong>Action</strong> — Alert</li>



<li><strong>Recipients</strong> — your security or compliance team email addresses</li>
</ul>
</li>



<li>Click <strong>Save</strong> and set to <strong>Active</strong></li>
</ol>



<p class="wp-block-paragraph"><em>[Your administrator should configure alerts for each sensitive class type relevant to your compliance obligations — at minimum PHI for HIPAA environments and PII for GDPR environments.]</em></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>Review scan results promptly after each scan completes — sensitive data findings should not sit unaddressed</li>



<li>Use the Class Type filter to prioritize PHI and PII findings for immediate investigation before reviewing Sensitive and Confidential findings</li>



<li>Validate matches using the file path and raw log context before acting — not every match is a genuine sensitive data finding</li>



<li>Export and retain scan results as part of your compliance evidence library</li>



<li>Run a follow-up on-demand scan after remediation to confirm sensitive data has been successfully removed from the affected location</li>



<li>Track remediation progress for all findings to demonstrate to auditors that your organization acts on data discovery results</li>



<li>Set up alert rules in LT Auditor-MP for PHI and PII class type findings so your team is notified promptly rather than discovering findings during a scheduled review</li>
</ul>



<p class="wp-block-paragraph"><em>[Your administrator should establish a regular cadence for reviewing accumulated scan results in LT Auditor-MP as part of an ongoing data governance review process.]</em></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What is PII Scanner?</title>
		<link>https://bluelance.com/docs/what-is-pii-scanner/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:21:41 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15879</guid>

					<description><![CDATA[LT Auditor-MP PII Scanner is a distributed data discovery platform that identifies Personally Identifiable Information (PII), Protected Health Information (PHI), and other categories of sensitive data across your organization&#8217;s file systems. It consists of a centralized server application with a web-based administrative interface and a companion scanning agent deployed on the machines whose file systems [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">LT Auditor-MP PII Scanner is a distributed data discovery platform that identifies Personally Identifiable Information (PII), Protected Health Information (PHI), and other categories of sensitive data across your organization&#8217;s file systems. It consists of a centralized server application with a web-based administrative interface and a companion scanning agent deployed on the machines whose file systems you want to scan.</p>



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



<p class="wp-block-paragraph"><strong>How PII Scanner works:</strong></p>



<p class="wp-block-paragraph">The server manages all aspects of the scanning program — clients, scan jobs, PII detection rules, target destinations, and scheduled jobs. Agents register with the server, poll for queued scan jobs, scan local or network file paths for sensitive data patterns, and forward results to a configured destination such as an LT Auditor-MP server.</p>



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



<ol class="wp-block-list">
<li>Administrator defines PII detection classes and configures target destinations in the server web UI</li>



<li>Administrator creates a scan job or schedule, assigning it to a registered agent</li>



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



<li>The agent scans the specified file path using the selected PII detection patterns</li>



<li>Detected PII matches are forwarded in real time to the configured target (LT Auditor-MP)</li>



<li>The agent reports job completion back to the server</li>



<li>Results are available in LT Auditor-MP for review, alerting, and compliance reporting</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>PII Scanner Server</strong> An ASP.NET Core 8 web application that hosts the administrative interface and REST API. It manages client registrations, scan jobs, PII class definitions, target destinations, and scheduled jobs. The server runs as a Windows Service or Linux systemd service and uses a SQLite database for persistence. The web interface is accessible via browser on port 52766 (HTTPS) or 52765 (HTTP).</p>



<p class="wp-block-paragraph"><strong>PII Scanner Agent</strong> A Python-based scanning agent deployed on machines whose file systems you want to scan. The agent registers with the PII Scanner Server, polls for available jobs at a configurable interval, executes scans against specified file paths, and forwards detected PII matches to the configured target destination in real time.</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>Detection of PII, PHI, and other sensitive data types using configurable regex-based patterns</li>



<li>Support for scanning Windows and Linux file systems and network shares</li>



<li>Centralized scan job management through a web-based administrative interface</li>



<li>On-demand and scheduled recurring scan jobs</li>



<li>Real-time forwarding of scan results to LT Auditor-MP via UDP, TCP, or TLS syslog</li>



<li>Support for multiple simultaneous scanning agents across large environments</li>



<li>Configurable file extension filtering per scan job</li>



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



<p class="wp-block-paragraph"><strong>Supported PII and sensitive data class types:</strong></p>



<ul class="wp-block-list">
<li>PII — Personally Identifiable Information</li>



<li>PHI — Protected Health Information</li>



<li>Sensitive</li>



<li>Confidential</li>



<li>Private</li>
</ul>



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



<ul class="wp-block-list">
<li>Identifying where sensitive data lives across your file systems</li>



<li>Detecting PII or PHI in unexpected or unauthorized locations</li>



<li>Supporting GDPR, HIPAA, PCI-DSS, and NIS2 compliance requirements</li>



<li>Producing evidence of data discovery efforts for auditors</li>



<li>Automating recurring data discovery across high-risk directories</li>
</ul>



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



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



<p class="wp-block-paragraph">PII Scanner extends LT Auditor-MP&#8217;s capabilities into proactive data discovery. While other modules like EventLogCentral and Azure Log Connector monitor activity as it happens, PII Scanner actively interrogates file systems to find where sensitive data exists — giving organizations the visibility needed to make informed decisions about access controls, data governance, and compliance obligations.</p>



<p class="wp-block-paragraph"><em>[Your administrator should confirm which file systems and data types are in scope for scanning in your environment, and ensure scanning activity complies with any applicable data privacy policies.]</em></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<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>Connecting to Managed Endpoints</title>
		<link>https://bluelance.com/docs/connecting-to-managed-endpoints/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:21:10 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15870</guid>

					<description><![CDATA[After installing PowerShell Orchestrator, you need to configure the endpoints it will connect to and run assessments against. Managed endpoints are the Active Directory domain controllers, member servers, and other Windows machines that PowerShell Orchestrator will query during its assessment runs. Understanding managed endpoints: A managed endpoint is any machine that PowerShell Orchestrator connects to [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">After installing PowerShell Orchestrator, you need to configure the endpoints it will connect to and run assessments against. Managed endpoints are the Active Directory domain controllers, member servers, and other Windows machines that PowerShell Orchestrator will query during its assessment runs.</p>



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



<p class="wp-block-paragraph"><strong>Understanding managed endpoints:</strong></p>



<p class="wp-block-paragraph">A managed endpoint is any machine that PowerShell Orchestrator connects to in order to collect assessment data. This includes:</p>



<ul class="wp-block-list">
<li>Active Directory domain controllers</li>



<li>Windows member servers</li>



<li>Workstations (if included in your assessment scope)</li>



<li>Microsoft Entra ID (connected via the configured service account, not a direct machine connection)</li>
</ul>



<p class="wp-block-paragraph">PowerShell Orchestrator connects to endpoints using PowerShell Remoting over WinRM. The service account configured during installation is used to authenticate to each endpoint.</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 adding managed endpoints, confirm the following on each target machine:</p>



<ul class="wp-block-list">
<li>WinRM is enabled and the WinRM service is running</li>



<li>The PowerShell Orchestrator service account has read permissions on the target machine</li>



<li>No firewall is blocking WinRM traffic between the orchestrator machine and the target endpoint</li>
</ul>



<p class="wp-block-paragraph"><strong>Default WinRM ports:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Protocol</strong></td><td><strong>Port</strong></td></tr><tr><td>HTTP (unencrypted)</td><td>5985</td></tr><tr><td>HTTPS (encrypted)</td><td>5986</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Anthropic recommends using HTTPS (port 5986) for WinRM connections in production environments to encrypt traffic between the orchestrator and managed endpoints.</p>



<p class="wp-block-paragraph"><em>[Your administrator should confirm which WinRM protocol and port are used in your environment.]</em></p>



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



<p class="wp-block-paragraph"><strong>Enabling WinRM on target endpoints:</strong></p>



<p class="wp-block-paragraph">If WinRM is not already enabled on a target endpoint, run the following in PowerShell as Administrator on that machine:</p>



<p class="wp-block-paragraph">Enable-PSRemoting -Force</p>



<p class="wp-block-paragraph">To enable WinRM across multiple machines simultaneously, use Group Policy:</p>



<ol class="wp-block-list">
<li>Open <strong>Group Policy Management Console</strong></li>



<li>Create or edit a GPO linked to the relevant OU</li>



<li>Navigate to:</li>
</ol>



<p class="wp-block-paragraph">Computer Configuration → Policies → Windows Settings →</p>



<p class="wp-block-paragraph">Security Settings → System Services → Windows Remote Management</p>



<ol start="4" class="wp-block-list">
<li>Set the service startup mode to <strong>Automatic</strong></li>



<li>Apply the GPO</li>
</ol>



<p class="wp-block-paragraph"><em>[Your administrator should confirm whether WinRM is already managed via Group Policy in your environment before making manual changes.]</em></p>



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



<p class="wp-block-paragraph"><strong>Testing connectivity to a target endpoint:</strong></p>



<p class="wp-block-paragraph">Before adding an endpoint to PowerShell Orchestrator, test that the orchestrator machine can successfully connect to it:</p>



<p class="wp-block-paragraph">Test-WSMan -ComputerName &lt;hostname or IP&gt; -Credential (Get-Credential)</p>



<p class="wp-block-paragraph">A successful result returns the WinRM service information for the target machine. If the test fails:</p>



<ul class="wp-block-list">
<li>Confirm WinRM is running on the target machine</li>



<li>Confirm no firewall is blocking ports 5985 or 5986</li>



<li>Confirm the service account has permission to connect remotely</li>
</ul>



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



<p class="wp-block-paragraph"><strong>Adding managed endpoints in LT Auditor <sup>MP</sup>:</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</strong></li>



<li>Click <strong>Add Endpoint</strong></li>



<li>Configure the endpoint details:
<ul class="wp-block-list">
<li><strong>Name</strong> — a descriptive name for the endpoint (e.g., DC01 — Primary Domain Controller)</li>



<li><strong>Hostname or IP Address</strong> — the address of the target machine</li>



<li><strong>Connection Protocol</strong> — HTTP or HTTPS</li>



<li><strong>Port</strong> — 5985 (HTTP) or 5986 (HTTPS)</li>



<li><strong>Credential</strong> — select the configured service account</li>
</ul>
</li>



<li>Click <strong>Test Connection</strong> to verify connectivity before saving</li>



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



<p class="wp-block-paragraph">Repeat this process for each endpoint you want to include in assessments.</p>



<p class="wp-block-paragraph"><em>[Your administrator should maintain a list of all managed endpoints and their roles in your environment.]</em></p>



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



<p class="wp-block-paragraph"><strong>Adding Microsoft Entra ID as a managed target:</strong></p>



<p class="wp-block-paragraph">Entra ID is connected as a cloud target rather than a direct machine endpoint.</p>



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



<li>Click <strong>Add Entra ID Target</strong></li>



<li>Enter the following details from your App Registration in the Azure Portal:
<ul class="wp-block-list">
<li><strong>Tenant ID</strong></li>



<li><strong>Client ID</strong></li>



<li><strong>Client Secret</strong></li>
</ul>
</li>



<li>Click <strong>Test Connection</strong> to verify the credentials</li>



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



<p class="wp-block-paragraph"><em>[Your administrator should refer to the EntraConnector Prerequisites article for instructions on creating and configuring the App Registration in the Azure Portal if this has not already been done.]</em></p>



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



<p class="wp-block-paragraph"><strong>Verifying endpoint connectivity:</strong></p>



<p class="wp-block-paragraph">After adding endpoints, confirm they are showing as reachable in LT Auditor <sup>MP</sup>:</p>



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



<li>Review the endpoint list — each endpoint should show a status of <strong>Reachable</strong></li>



<li>If any endpoint shows as <strong>Unreachable</strong>, check:
<ul class="wp-block-list">
<li>The WinRM service is running on that machine</li>



<li>The hostname or IP address is correct</li>



<li>No firewall is blocking the WinRM port</li>



<li>The service account credentials are valid and have not expired</li>
</ul>
</li>
</ol>



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



<p class="wp-block-paragraph"><strong>Removing a managed endpoint:</strong></p>



<p class="wp-block-paragraph">If a machine is decommissioned or no longer needs to be included in assessments:</p>



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



<li>Locate the endpoint in the list</li>



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



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



<p class="wp-block-paragraph">Removing an endpoint stops future assessments from running against it. Historical assessment data collected from that endpoint is retained in the LT Auditor <sup>MP</sup> database and is 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>Always test connectivity before saving a new endpoint to catch configuration issues early</li>



<li>Use HTTPS for WinRM connections in production to encrypt assessment traffic</li>



<li>Use a dedicated, least-privilege service account — avoid using a domain admin account for orchestrator connections</li>



<li>Keep the endpoint list current — remove decommissioned machines promptly to avoid failed assessment runs</li>



<li>Manage WinRM configuration via Group Policy for consistency across large environments</li>



<li>Document each managed endpoint and its role so other administrators understand the assessment scope</li>
</ul>



<p class="wp-block-paragraph"><em>[Your administrator should review the managed endpoint list regularly to ensure it reflects the current state of your environment.]</em></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>Installing PowerShell Orchestrator</title>
		<link>https://bluelance.com/docs/installing-powershell-orchestrator/</link>
		
		<dc:creator><![CDATA[peter thomas]]></dc:creator>
		<pubDate>Thu, 28 May 2026 16:20:59 +0000</pubDate>
				<guid isPermaLink="false">https://bluelance.com/?post_type=docs&#038;p=15868</guid>

					<description><![CDATA[PowerShell Orchestrator is installed on a Windows machine that has network access to your Active Directory domain controllers and Microsoft Entra ID tenant. The installation package is available as a zip file from the Blue Lance download portal. Complete the LT Auditor MP server installation before deploying PowerShell Orchestrator. Prerequisites: Before installing, confirm the following: [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">PowerShell Orchestrator is installed on a Windows machine that has network access to your Active Directory domain controllers and Microsoft Entra ID tenant. The installation package is available as a zip file from the Blue Lance download portal. Complete the LT Auditor <sup>MP</sup> server installation before deploying PowerShell Orchestrator.</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 installing, confirm the following:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Requirement</strong></td><td><strong>Details</strong></td></tr><tr><td>LT Auditor <sup>MP</sup> Server</td><td>Must be installed and running before deploying PowerShell Orchestrator</td></tr><tr><td>Operating System</td><td>Windows Server 2019 or newer</td></tr><tr><td>PowerShell Version</td><td>PowerShell 5.1 or PowerShell 7+</td></tr><tr><td>WinRM</td><td>Must be enabled on the machine running the orchestrator and all target endpoints</td></tr><tr><td>Service Account</td><td>A dedicated service account with read permissions across Active Directory and Entra ID</td></tr><tr><td>Network Access</td><td>Must be able to reach domain controllers, Entra ID, and the LT Auditor <sup>MP</sup> server</td></tr><tr><td>Privileges</td><td>Administrator privileges required on the installation machine</td></tr><tr><td>Download Package</td><td>lta-mp-orchestrator.zip obtained from the Blue Lance download portal</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Download the PowerShell Orchestrator package:</p>



<p class="wp-block-paragraph"><em>[Your administrator should confirm whether packages are distributed internally or downloaded directly from the portal in your environment.]</em></p>



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



<p class="wp-block-paragraph"><strong>Enabling WinRM on the installation machine:</strong></p>



<p class="wp-block-paragraph">If WinRM is not already enabled, run the following in PowerShell as Administrator:</p>



<p class="wp-block-paragraph">Enable-PSRemoting -Force</p>



<p class="wp-block-paragraph">Confirm WinRM is running:</p>



<p class="wp-block-paragraph">Get-Service WinRM</p>



<p class="wp-block-paragraph">The service should show as <strong>Running</strong>.</p>



<p class="wp-block-paragraph"><em>[Your administrator should confirm whether WinRM is managed via Group Policy in your environment before enabling it manually.]</em></p>



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



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



<ol class="wp-block-list">
<li>Copy the lta-mp-orchestrator.zip package to the target Windows machine<br></li>



<li>Extract the zip file to a working directory<br></li>



<li>Open <strong>PowerShell as Administrator</strong> and navigate to the extracted directory:<br></li>
</ol>



<p class="wp-block-paragraph">cd C:\path\to\extracted\orchestrator</p>



<ol start="4" class="wp-block-list">
<li>If not already done, allow PowerShell scripts to run:</li>
</ol>



<p class="wp-block-paragraph">Set-ExecutionPolicy Unrestricted</p>



<ol start="5" class="wp-block-list">
<li>Run the installation script:</li>
</ol>



<p class="wp-block-paragraph">.\Install.ps1</p>



<ol start="6" class="wp-block-list">
<li>Follow any on-screen prompts during installation, including:<br>
<ul class="wp-block-list">
<li>Entering the LT Auditor <sup>MP</sup> server IP address or hostname</li>



<li>Confirming the syslog port (default: 514)</li>



<li>Selecting the communication protocol (UDP, TCP, or TLS)</li>



<li>Entering the service account credentials to be used for Active Directory and Entra ID assessments</li>
</ul>
</li>



<li>Once installation is complete, reset the PowerShell execution policy:<br></li>
</ol>



<p class="wp-block-paragraph">Set-ExecutionPolicy Restricted</p>



<p class="wp-block-paragraph"><em>[Your administrator should fill in the exact installer prompts and any environment-specific options that appear during installation.]</em></p>



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



<p class="wp-block-paragraph"><strong>Post-installation verification:</strong></p>



<p class="wp-block-paragraph">After installation completes, confirm that PowerShell Orchestrator is running and communicating with the LT Auditor <sup>MP</sup> server.</p>



<ol class="wp-block-list">
<li>Check the service status:</li>
</ol>



<p class="wp-block-paragraph">sc query PowerShellOrchestrator</p>



<p class="wp-block-paragraph">The service should show as <strong>Running</strong>.</p>



<ol start="2" class="wp-block-list">
<li>In the LT Auditor <sup>MP</sup> Web UI, navigate to <strong>Admin → Modules</strong> and confirm the PowerShell Orchestrator instance appears with a status of <strong>Connected<br></strong></li>



<li>Check the PowerShell Orchestrator logs for any errors:<br></li>
</ol>



<p class="wp-block-paragraph">\Program Files\Blue Lance 2-0\PowerShellOrchestrator\Logs\</p>



<ol start="4" class="wp-block-list">
<li>Verify that assessment data is appearing in the LT Auditor <sup>MP</sup> <strong>View</strong> module by navigating to <strong>View</strong> and selecting the Active Directory environment</li>
</ol>



<p class="wp-block-paragraph">If the module does not appear as connected in the Web UI, confirm that no firewall is blocking communication between the installation machine and the LT Auditor <sup>MP</sup> server on the configured syslog port.</p>



<p class="wp-block-paragraph"><em>[Your administrator should note the specific port, protocol, and service account used in your environment, and document which machine PowerShell Orchestrator is installed on.]</em></p>



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



<p class="wp-block-paragraph"><strong>Verifying service account permissions:</strong></p>



<p class="wp-block-paragraph">The service account used by PowerShell Orchestrator requires the following minimum permissions:</p>



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



<ul class="wp-block-list">
<li>Read access to all user, group, and computer objects in the monitored domains</li>



<li>Read access to Group Policy Objects (GPOs)</li>



<li>Read access to Active Directory Sites and Services</li>
</ul>



<p class="wp-block-paragraph"><strong>Microsoft Entra ID:</strong></p>



<ul class="wp-block-list">
<li>Directory.Read.All — read access to directory objects</li>



<li>AuditLog.Read.All — read access to audit logs</li>



<li>Policy.Read.All — read access to conditional access and other policies</li>
</ul>



<p class="wp-block-paragraph"><em>[Your administrator should confirm the exact permissions required in your environment and ensure the service account is configured accordingly before running the first assessment.]</em></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
