Downloads of v 6.4:


Last Update:

24 May 2021

Package Maintainer(s):

Software Author(s):

  • Robin Granberg


ad active directory acl scanner powershell server

AD ACL Scanner (Script)

  • 1
  • 2
  • 3

6.4 | Updated: 24 May 2021



Downloads of v 6.4:



Software Author(s):

  • Robin Granberg

  • 1
  • 2
  • 3
AD ACL Scanner (Script) 6.4

  • 1
  • 2
  • 3

All Checks are Passing

3 Passing Tests

Validation Testing Passed

Verification Testing Passed


Scan Testing Successful:

No detections found in any package files


To install AD ACL Scanner (Script), run the following command from the command line or from PowerShell:


To upgrade AD ACL Scanner (Script), run the following command from the command line or from PowerShell:


To uninstall AD ACL Scanner (Script), run the following command from the command line or from PowerShell:


NOTE: This applies to both open source and commercial editions of Chocolatey.

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Enter your internal repository url

(this should look similar to

4. Choose your deployment method:

choco upgrade ad-acl-scanner -y --source="'STEP 3 URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:

choco upgrade ad-acl-scanner -y --source="'STEP 3 URL'"

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0

Exit $exitCode

- name: Ensure ad-acl-scanner installed
    name: ad-acl-scanner
    state: present
    version: 6.4
    source: STEP 3 URL

See docs at

chocolatey_package 'ad-acl-scanner' do
  action    :install
  version  '6.4'
  source   'STEP 3 URL'

See docs at

    Name: ad-acl-scanner,
    Version: 6.4,
    Source: STEP 3 URL

Requires Otter Chocolatey Extension. See docs at

cChocoPackageInstaller ad-acl-scanner
   Name     = 'ad-acl-scanner'
   Ensure   = 'Present'
   Version  = '6.4'
   Source   = 'STEP 3 URL'

Requires cChoco DSC Resource. See docs at

package { 'ad-acl-scanner':
  provider => 'chocolatey',
  ensure   => '6.4',
  source   => 'STEP 3 URL',

Requires Puppet Chocolatey Provider module. See docs at

salt '*' chocolatey.install ad-acl-scanner version="6.4" source="STEP 3 URL"

See docs at

5. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

Private CDN cached downloads available for licensed customers. Never experience 404 breakages again! Learn more...

This package was approved as a trusted package on 24 May 2021.



To use choco:// protocol URLs, install (unofficial) choco:// Protocol support

Screenshot of AD ACL Scanner


It has the following features:

  • View HTML reports of DACLs/SACLs and save it to disk.
  • Export DACLs/SACLs on Active Directory objects in a CSV format.
  • Connect and browse you default domain, schema , configuration or a naming context defined by distinguishedname.
  • Browse naming context by clicking you way around, either by OU’s or all types of objects.
  • Report only explicitly assigned DACLs/SACLs.
  • Report on OUs , OUs and Container Objects or all object types.
  • Filter DACLs/SACLs for a specific access type.. Where does “Deny” permission exists?
  • Filter DACLs/SACLs for a specific identity. Where does "Domain\Client Admins" have explicit access? Or use wildcards like "jdoe".
  • Filter DACLs/SACLs for permission on specific object. Where are permissions set on computer objects?
  • Skip default permissions (defaultSecurityDescriptor) in report. Makes it easier to find custom permissions.
  • Report owner of object.
  • Compare previous results with the current configuration and see the differences by color scheme (Green=matching permissions, Yellow= new permissions, Red= missing permissions).
  • Report when permissions were modified
  • Can use AD replication metadata when comparing.
  • Can convert a previously created CSV file to a HTML report.
  • Effective rights, select a security principal and match it agains the permissions in AD.
  • Color coded permissions based on criticality when using effective rights scan.
  • List you domains and select one from the list.
  • Get the size of the security descriptor (bytes).
  • Rerporting on disabled inheritance .
  • Get all inherited permissions in report.
  • HTLM reports contain headers.
  • Summary of criticality for all report types.
  • Refresh Nodes by right-click container object.
  • Exclude of objects from report by matching string to distinguishedName
  • You can take a CSV file from one domain and use it for another. With replacing the old DN with the current domains you can resuse reports between domains. You can also replace the (Short domain name)Netbios name security principals.
  • Reporting on modified default security descriptors in Schema.
  • Verifying the format of the CSV files used in convert and compare functions.
  • When compairing with CSV file Nodes missing in AD will be reported as "Node does not exist in AD"
  • The progress bar can be disabled to gain speed in creating reports.
  • If the fist node in the CSV file used for compairing can't be connected the scan will stop.
  • Display group members in groups in the HTLM report.
  • Present the value of the true SDDL in NTsecurityDescriptor, bypassing Object-Specific ACE merge done when a new instance of the ObjectSecurity class is initialized.

System requirements

  • Powershell 2.0 or above
  • PowerShell using a single-threaded apartment
  • Some functions requires Microsoft .NET Framework version 4.0


Click here to Patreon-ize the package maintainer.

$ErrorActionPreference = 'Stop'
$packageName  = 'ad-acl-scanner' 
$toolsDir     = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$url          = ''
$checksum     = '59E95375E1C243FADEAB5E52F941AF1BD2926D94135EB4A712E5C3029D0AD9EC'
$fileName     = 'ADACLScan.ps1'
$shortcutName = 'AD ACL Scanner' 
$FileFullpath = "$toolsDir\$fileName"

$packageArgs = @{
  packageName   = $packageName
  fileType      = ''
  url           = $url
  FileFullPath  = $FileFullpath
  checksum      = $checksum
  checksumType  = 'sha256'

Get-ChocolateyWebFile @packageArgs

Install-ChocolateyShortcut -shortcutFilePath "$ENV:USERPROFILE\Desktop\$shortcutName.lnk" -targetPath $FileFullpath -WorkingDirectory "$toolsDir"

$ErrorActionPreference = 'Stop'
$packageName  = 'ad-acl-scanner'
$shortcutName = 'AD ACL Scanner' 

Remove-Item "$ENV:USERPROFILE\Desktop\$shortcutName.lnk" -Force -ErrorAction SilentlyContinue

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Version Downloads Last Updated Status
AD ACL Scanner (Script) 5.9 540 Wednesday, November 13, 2019 Approved
AD ACL Scanner (Script) 5.6.3 299 Friday, June 14, 2019 Approved
AD ACL Scanner (Script) 5.6.2 165 Friday, April 5, 2019 Approved
AD ACL Scanner (Script) 5.6.1 215 Wednesday, January 2, 2019 Approved
AD ACL Scanner (Script) 5.6 324 Friday, April 6, 2018 Approved
AD ACL Scanner (Script) 5.5 336 Sunday, November 26, 2017 Approved
AD ACL Scanner (Script) 5.4.4 334 Friday, September 22, 2017 Approved
AD ACL Scanner (Script) 5.4.3 299 Friday, September 1, 2017 Approved

Discussion for the AD ACL Scanner (Script) Package

Ground Rules:

  • This discussion is only about AD ACL Scanner (Script) and the AD ACL Scanner (Script) package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or AD ACL Scanner (Script), or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus