DeepSurface: Active Directory Group Policy
DocumentationInstallation GuideOverviewLet DeepSurface Host For YouGetting StartedSystem RequirementsSelf Hosted Quick Start - Installing to Cloud PlatformsSelf Hosted - Installation Using an OVARegistration, Package Installation, and InitializationFirst Steps After Initialization of the ConsoleDeployment OptionsMain and Subordinate ConsolesAgent-Based DeploymentUser Managed Scan DeploymentCredentialed Scanning DeploymentMixed EnvironmentDeployment ToolsActive Directory Group PolicyMicrosoft Endpoint Configuration Manager (part of InTune)Tanium DeployHCL BigFixIvantiVirtual MachinesVMWareVirtual BoxVirtualBox Guest AdditionsAWS EC2 (BYOL)AWS EC2 (Usage Based)Azure CloudGoogle CloudAdditional Items to ConsiderMain Console Server CertificatesLDAPTOFUClock SyncDeepSurface CommandsMultiple Vulnerability SourcesAPI DocumentationUser GuideReportingDashboardsExportsRisk InsightHostsPatchesVulnerabilitiesVulnerability InstancesUsersRemediation Workflow ManagerPlansSettingsIntegrationsWorkflowExportingAccepted Risk PlansAccepted Risk WorkflowExploreModelPathsActivityTasksConfiguration AlertsScan LogsNotification SettingsScanningStatusAgentsUser ManagedCredentialed Scanning SettingsCredentialsScan GroupsGeneral SettingsCloud ScanningNetwork ConnectivitySubordinatesVulnerability SourcesSetupSensitive Assets: PolicesSensitive Assets: ManualAdmin SettingsSMTP SettingsCertificatesOutbound ProxyAuthentication ProvidersUsersTagsIntegrations GuideVulnerability SourcesCrowdStrike SpotlightSentinelOneCarbon Black CloudMicrosoft Defender for EndpointWazuhLansweeper CloudNessus APITenable.io APISecurity Center/Tenable.sc APIRapid7 InsightVM APIQualys APINozomi GuardianEclypsiumAWS InspectorRemediationJira SoftwareTanium (BETA)Authentication ProvidersLDAP (Active Directory)SAML (Azure Active Directory)SAML (Google)SAML (Okta)PAMCyberArkDelinea (Thycotic)Microsoft LAPSSecurity GuideFirewall ConfigurationBase Network RequirementsAgent Network RequirementsCredentialed Scanning Network RequirementsAPI Network RequirementsHow DeepSurface Scans WorkDomain (LDAP) ScanningHost Scanning RoutineReasons for the Administrative Access RequirementEndpoint Protection ConsiderationsOther ItemsScope of Data Storage and RetentionIPS/IDS ConsiderationsLoggingResetting the DSADMIN passwordProduct InformationChangelogsOpen source LicensesEnd User License Agreement (EULA)
Using Active Directory Group Policy to Deploy DeepSurface Scans
Using the Active Directory Group Policy to deploy agents or create scheduled tasks to execute user managed scans can be done if another deployment tool is not available, and your hosts are primarily Microsoft Windows machines. You can execute User-Managed Scans or install the DeepSurface Agent on your hosts using GPOs.
Prerequisites
- The DeepSurface appliance is installed and configured
- The DeepSurface appliance has installed a valid, non-self signed SSL/TLS certificate. (With PowerShell 7.4.4, this item is optional)
- Hosts that will run the agent must be able to communicate with the DeepSurface console or subordinate console over TCP port 44305 using the configured endpoint address
- The Hosts you wish to scan are joined to your Active Directory domain.
Obtain the Relevant Script
The first step to installing a DeepSurface Agent or running a User-Managed Scan with RiskAnalyzer is to configure the associated endpoints, and then obtain the script related to the specific deployment method.
DeepSurface Agent
In the RiskAnalyzer console, navigate to:
Scanning > Agents > Edit Agent Configuration
Ensure the endpoint configuration and blackout settings are correct. For more information on these settings, refer to the embedded product manual. Once finished, save this configuration.
Upon returning from the Edit Agent Configuration screen, you will be presented with instructions on how to download and run the installation script. Download this script.
Finally, copy the command and arguments presented on the page for later use.
User-Managed
In the RiskAnalyzer console, navigate to:
Scanning > User Managed> Edit User Managed Configuration
Ensure the endpoint configuration settings are correct. For more information on these settings, refer to the embedded product manual. Once finished, save this configuration.
Upon returning from the Edit User Managed Configuration screen, you will be presented with instructions on how to download and run the installation script. Download this script. It will be used below for deploying User-Managed Scans if you are unable to install a valid SSL/TLS certificate on the DeepSurface Console.
Finally, copy the command and arguments presented on the page for later use.
The command and arguments presented on the page should resemble this. The first parameter blurred out below is your certificate thumbprint, the second is your registration code:

NOTE: The name of the script varies depending on deployment method and will be referred to as “<deployment-script>” throughout the rest of this document.
Set Up Your Environment
- If you have a valid, non-self signed certificate you have installed on the DeepSurface console following these instructions, you can execute the Agent Installation or User Managed Scan script with a single line, calling the script from the console without having to copy the script to a shared location. Remember, for some older Windows clients the Let's Encrypty CA is not trusted.
- Without a valid SSL/TLS certificate, you will have to create a share that is accessible by the hosts you will scan.
- The share should be secured effectively, and should be accessible read-only by a service account with a sufficiently complex password that the script will be run as on the workstations in question.
- The service account needs Admin permissions on the hosts you will scan.
- Open the Group Policy Management and create a new GPO.

- Select your newly created GPO and edit the scope to include parameters that will apply to the hosts you wish DeepSurface to scan.

- Right click your new GPO and select edit, then navigate to Computer Configuration > Preferences > Control Panel Settings > Scheduled Tasks, Right click Scheduled Tasks and select New > Scheduled Task.

- Set the Action to 'Create', Give the GPO and appropriate name, and set the program to run to be:
'c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
If you have a valid SSL/TLS certificate installed. If you have installed Powershell 7.4.4 or later and intend to install it on all hosts you are going to be scanning DeepSurface with, select:
'c:\Program Files\PowerShell\7\pwsh.exe'

- If you have a valid SSL/TLS certificate installed on the DeepSurface console, and are using Powershell 5.1 or Powershell 7.4.4, In the Arguments field, enter the following command, all on one line.
-Command $Script = ((Invoke-WebRequest -Uri https://<FQDN of your DeepSurface Console>/agent-setup/<deployment script name>).Content); $ScriptBlock = [Scriptblock]::Create($Script.Content); Invoke-Command -ScriptBlock $ScriptBlock -ArgumentList ($args + @('<certificate thumbprint>') + @('<registration code>') + @('<FQDN of your DeepSurface Console>:44305'))
- If you do not have a valid SSL/TLS certificate and you are using Powershell 7.4.4, you can use these command arguments It is important to understand that using this option skips certificate validation checking and may allow an attacker to tamper with the script that is downloaded. DO NOT use this method if your DeepSurface console is accessed over public networks.
-Command $Script = ((Invoke-WebRequest -Uri https://<FQDN of your DeepSurface Console>/agent-setup/<deployment script>).Content) -SkipCertificateCheck; $ScriptBlock = [Scriptblock]::Create($Script.Content); Invoke-Command -ScriptBlock $ScriptBlock -ArgumentList ($args + @('<certificate thumbprint>') + @('<registration code>') + @('<FQDN of your DeepSurface Console>:44305'))
- If you do not have a valid SSL/TLS certificate, and you must use Powershell 5.1, you will have created a network share that holds the and place these command arguments in the Arguments field.
\\UNC path\<deployment script> <certificate thumbprint> <registration code> <FQDN of your DeepSurface Console>:44305
Set the 'Start in:' value to %temp%
Set the 'Run as' to be a user that has the required permissions on all the hosts you wish to scan.
Click the 'Schedule' tab at the top of the dialog box. If you are performing User Managed Scans, set the schedule to execute periodically. If you are installing the agent, set the task to run 'Once'. Installed agents get their scanning schedule from the DeepSurface console.

- Click the 'Settings' tab and edit to suit your needs. If you are installing the agent, click the box next to 'Delete the task of it is not scheduled to run again.'

The settings in the 'Common' tab can be left as default.
Click Apply at the bottom of the dialog box, and as your scheduled task executes and the DeepSurface console processes the incoming data, you will see your hosts begin to populate in the DeepSurface console.