Business value: This cmdlet is used to run one or more audit providers against a target computer, ensuring that the configuration meets the required standards for security and compliance.
- Who uses this:
- IT administrators responsible for maintaining the security posture of their organization’s computers.
- Compliance officers who need to ensure that the organization’s systems meet regulatory requirements.
- Security teams who want to identify potential vulnerabilities in their systems.
- Risks: If not properly configured, audit providers can cause system instability or incorrect results.
- When a manager cares:
- When the organization is undergoing a security audit and needs to demonstrate compliance with industry standards.
- When there are changes to the IT infrastructure that require re-audit of existing systems.
Day-to-day use:
- To run one or more audit providers against a target computer, use the
Invoke-SpnAuditEnginecmdlet. The command should be in the following format:Invoke-SpnAuditEngine -ProviderId <provider_name> -TargetComputer <computer_name> - You can also pipe provider names to the cmdlet:
Get-Content -Path 'providers.txt' | Invoke-SpnAuditEngine -TargetComputer <computer_name> - Use
Invoke-SpnLifecyclecmdlet in combination with-PassThruparameter if you need more control over the audit process.
# Example 1:
Invoke-SpnAuditEngine -ProviderId AD.RDP,AD.SMB -TargetComputer srv01
# Example 2:
'AD.RDP','AD.SMB' | Invoke-SpnAuditEngine -TargetComputer srv01
# Using Invoke-SpnLifecycle with -PassThru parameter
Invoke-SpnLifecycle -ProviderId AD.RDP -TargetComputer srv01 -PassThruWatchpoints:
- Make sure to update the list of providers if new ones are added.
- Be cautious when piping large lists of provider names to avoid overwhelming the system.
This cmdlet runs one or more audit providers against a target computer, ensuring that the configuration meets the required standards for security and compliance. It’s like sending your IT team on a scavenger hunt to identify potential vulnerabilities in your systems.
Simple steps:
- Identify the providers you want to run (e.g., AD.RDP, AD.SMB).
- Specify the target computer where you want to run these providers.
- Use the
Invoke-SpnAuditEnginecmdlet with the provider names and target computer as arguments.
When stuck:
- Check that your provider list is up-to-date and includes only implemented providers (Status = Implemented).
- Consult the documentation for specific error messages or code examples.
| Field | Value |
|---|---|
| Vendor | Detent Point LLC |
| Product | SpnManager 0.4.0 |
| Licence | Proprietary - licensed, not sold. See LICENSE. |
| Operational impact | Read-only. Queries Active Directory and reports findings; changes nothing. |
| Rights required | Directory read access. |
| Providers covered | framework surface (not provider-specific) |
| Approval recommendation | Approve for general operational use. It cannot alter directory state. |
Licence terms are proprietary and are supplied with the purchase, subscription or evaluation agreement. No open-source licence is granted.
| What | Why |
|---|---|
| Windows PowerShell 5.1 or later | Declared by the module manifest. |
| ActiveDirectory 1.0.0.0 | Required module. Ships with RSAT; install the Active Directory PowerShell feature. |
| A reachable domain controller | Every provider reads from Active Directory. |
| An account with directory read access | Needed to enumerate accounts and their SPNs. |
Data handling: * The cmdlet collects and stores audit results from each provider. * These results are stored in memory until all providers have finished running.
Data transit: * Results are not transmitted over the network; they are stored locally on the target computer.
Data at rest: * Audit results are stored in SpnAuditResult[] objects, which can be accessed via the pipeline or written to a file using Export-Csv.
Audit trail: * Each provider’s audit results are stored separately and can be accessed individually. * The cmdlet logs errors and warnings to the console.
Compliance requirements: * Ensure that all providers used have implemented status (Status = Implemented). * Regularly update provider lists to reflect changes in your IT infrastructure.
Example 1
Invoke-SpnAuditEngine -ProviderId 'AD.RDP','AD.SMB' -TargetComputer 'srv01'Example 2
'AD.RDP','AD.WinRM' | Invoke-SpnAuditEngine -TargetComputer 'jumphost01'Example 3
Invoke-SpnAuditEngine -ProviderId 'AD.SMB','AD.RDP' -TargetComputer 'srv01'