Skip to main content

Get-ADComplianceReport

SYNOPSIS

Checks attributes on Active Directory objects against a set of compliance rules.

SYNTAX

Get-ADComplianceReport [[-UserSearchBase] <String[]>] [[-UserGroupSearchBase] <String[]>]
[[-AdminSearchBase] <String[]>] [[-AdminGroupSearchBase] <String[]>] [[-ComputerSearchBase] <String[]>]
[[-MSASearchBase] <String[]>] [[-OrganizationalSearchBase] <String[]>] [[-ServerSearchBase] <String[]>]
[[-ServiceAccountSearchBase] <String[]>] [-SaveADReports] [[-ReportFolder] <String>] [-SaveReport]
[<CommonParameters>]

DESCRIPTION

Checks attributes on Active Directory objects against a set of compliance rules and provides a report. It also takes several attributes and makes them human readable.

EXAMPLES

EXAMPLE 1

Get-ADComplianceReport

Runs Get-ADComplianceReport. Will default to OUs in config file.

EXAMPLE 2

Get-ADComplianceReport -UserSearchBase 'OU=Example User OU,DC=keldor,DC=dev'
Will search the 'OU=Example User OU,DC=keldor,DC=dev' OU for user objects and report on them.

EXAMPLE 3

Get-ADComplianceReport -UserSearchBase 'OU=Example User OU,DC=keldor,DC=dev' -SaveReport
Will search the 'OU=Example User OU,DC=keldor,DC=dev' OU for user objects and because the -ReportFolder parameter is not used to specify a path, it will save the report to C:\Scripts.

PARAMETERS

-UserSearchBase

Specify the distinguishedName(s) of organizational units (OUs) to search for user objects.

Type: String[]
Parameter Sets: (All)
Aliases: User, Users

Required: False
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-UserGroupSearchBase

Specify the distinguishedName(s) of organizational units (OUs) to search for group objects that have users.

Type: String[]
Parameter Sets: (All)
Aliases:

Required: False
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-AdminSearchBase

Specify the distinguishedName(s) of organizational units (OUs) to search for admin objects.

Type: String[]
Parameter Sets: (All)
Aliases: Admin, Admins

Required: False
Position: 3
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-AdminGroupSearchBase

Specify the distinguishedName(s) of organizational units (OUs) to search for group objects that have admins.

Type: String[]
Parameter Sets: (All)
Aliases:

Required: False
Position: 4
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-ComputerSearchBase

Specify the distinguishedName(s) of organizational units (OUs) to search for computer objects.

Type: String[]
Parameter Sets: (All)
Aliases: Computer, Computers

Required: False
Position: 5
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-MSASearchBase

Specify the distinguishedName(s) of organizational units (OUs) to search for Managed Service Account objects.

Type: String[]
Parameter Sets: (All)
Aliases: MSA, MSAs, gMSA, sMSA

Required: False
Position: 6
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-OrganizationalSearchBase

Specify the distinguishedName(s) of organizational units (OUs) to search for org boxes or shared account objects.

Type: String[]
Parameter Sets: (All)
Aliases: Orgs, Organizational, Shared

Required: False
Position: 7
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-ServerSearchBase

Specify the distinguishedName(s) of organizational units (OUs) to search for server objects.

Type: String[]
Parameter Sets: (All)
Aliases: Servers, MemberServer, MemberServers, DomainControllers

Required: False
Position: 8
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-ServiceAccountSearchBase

Specify the distinguishedName(s) of organizational units (OUs) to search for Service Account objects.

Type: String[]
Parameter Sets: (All)
Aliases: ServiceAccounts

Required: False
Position: 9
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-SaveADReports

Will save data pulled from Active Directory to reports for each object matching their type to path in ReportFolder parameter.

Type: SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

-ReportFolder

Specify where you want to save reports to. If you do not specify a path and use either the SaveADReports or SaveReport switches this defaults to C:\Scripts.

Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: 10
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-SaveReport

Will save the report in csv format. If a path isn't specified using the ReportFolder parameter it will save to C:\Scripts.

Type: SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

INPUTS

OUTPUTS

System.Management.Automation.PSCustomObject

NOTES

ALIASES

None.

PLATFORM APPLICABILITY

Windows only. The platform-aware loader does not export this command on Linux or macOS.

POWERSHELL COMPATIBILITY

See PowerShell compatibility for the supported runtime policy. PowerShell 7.6 LTS is preferred.

https://docs.keldor.dev/powershell/keldor/Get-ADComplianceReport