What it is
The PowerShell Relay is a PowerShell script that runs on a Windows server inside your network. It acts as a reverse proxy — Protect’s cloud asks it to query an on-prem tool, the relay does so over your internal network, and returns the result over an outbound HTTPS connection that the relay initiated.
No inbound firewall rules. No reverse proxy infrastructure. No NAT or DMZ. The relay only makes outbound connections, exactly like a browser.
When you need the relay
For integrations whose APIs aren’t internet-accessible:
If your tool is cloud-hosted (Azure AD, CrowdStrike cloud, Intune, JAMF Cloud, etc.), you don’t need the relay.
Setup
1
Configure the integration in Protect first
Settings → Integrations → select the on-prem integration → click Connect.Enter:
- Host URL —
https://<server>:<port>(test in a browser first to confirm reachability) - Certificate setting — Enable bypass if your internal cert won’t validate
- Authentication method — Default Credentials (NTLM, for SCCM) or Manual Credentials
2
Pick a relay server
Requirements:This is surfaced as the Pre-Script Setup Command in the Protect integration setup UI. Without it the AD relay script can’t import the
- Windows Server (any supported version)
- Network access to the target tool (LDAP, WMI, HTTPS to internal endpoint)
- Outbound HTTPS (port 443) allowed
- PowerShell 5.1 or higher
- Can run a scheduled task or service
ActiveDirectory module and will error out.3
Extract files to the exact path
The relay files (Create that folder if it doesn’t exist. The scheduled task expects this path.
command.cmd + <integration>.ps1) must live at:4
Test the script manually first
Before scheduling, run the script as a human to confirm it works.If using Default Credentials (NTLM) — for SCCM, AD:
- Shift + Right-click Command Prompt → Run as different user
- Enter the credentials the scheduled task will use
cd C:\Scripts\ThreatAwarecommand.cmd- Watch for errors
- Open Command Prompt as Administrator
cd C:\Scripts\ThreatAwarecommand.cmd
5
Create a scheduled task
- Open Task Scheduler → Create Task (NOT Create Basic Task)
- General tab:
- Name:
ThreatAware PowerShell Relay - <Tool Name> - Change User or Group: pick the service account, or
SYSTEMfor default-credential flows - ✓ Run whether user is logged on or not
- Name:
- Triggers tab: Daily → Recur every 1 day → Repeat task every 1 hour for 1 day
- Actions tab: Start a program → Browse →
C:\Scripts\ThreatAware\command.cmd - Settings tab:
- ✓ Allow task to be run on demand
- ✓ Run task as soon as possible after a scheduled start is missed
- Save (prompts for password)
6
Verify in Protect
Wait 5-10 minutes after the task runs, then check Settings → Integrations for CONNECTED status.
Frequency recommendations
Set the frequency in the scheduled task’s Trigger.
Security
Outbound only
No inbound ports. The relay only initiates HTTPS 443 outbound.
Read-only credentials
Provide an account with read access to the source system. Protect can never modify.
Encrypted
All relay-to-cloud traffic uses TLS 1.2+.
Troubleshooting
Certificate error: could not establish trust
Certificate error: could not establish trust
Internal cert isn’t trusted. Either install a valid cert on the target server, OR enable Bypass Certificate Check in the Protect integration settings.
Connection timeout
Connection timeout
- Verify network connectivity from relay server to target
- Confirm outbound HTTPS (443) is allowed from the relay server
- Test the URL from the relay server’s browser
Scheduled task shows but doesn't execute
Scheduled task shows but doesn't execute
- Enable Task History in Task Scheduler
- Verify task is Enabled
- Right-click → Run to test manually
- Check Event Viewer for task-scheduler errors
- Ensure the account has “Log on as a batch job” rights
Task runs but no data appears in Protect
Task runs but no data appears in Protect
- Check the script output during a manual run for silent errors
- Verify the integration’s Host URL is reachable from the relay server
- Check Audit Log for relay-side errors
Multiple relays for different tools
Multiple relays for different tools
Each integration has its own pair of files. Place each in a separate folder (e.g.
C:\Scripts\ThreatAware\AD\, C:\Scripts\ThreatAware\SCCM\) or run separate scheduled tasks pointing at each command.cmd.Multi-server / HA
For mission-critical estates, run the relay on two servers:- Both pointed at the same integration in Protect
- Stagger the scheduled task times by 15 minutes
- Protect deduplicates the inbound data
See also
Integrations
Conceptual overview
Connection Guides
Per-tool relay setups
Troubleshooting
Wider issue index