Repo for ADACLScan.ps1 - Your number one script for ACL's in Active Directory
Clone or download
canix1 Update of README
- Added SHA256 hash
Latest commit c0a58d9 Jul 10, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Effective rights from command line Jan 8, 2018
ADACLScan.ps1 Improved support for Excel Jul 9, 2018 Update of README Jul 9, 2018 Added license file Apr 9, 2017

AD ACL Scanner

Current version

Version: 5.6.1

9 July,2018

SHA256: B51FB4F0F794934C98CEBE9E850957D508BCF2AF1FDCC4F06C12929DBC8D8F85


Right click and save as - Here


  • A tool completly written in PowerShell.
  • A tool with GUI used to create reports of access control lists (DACLs) and system access control lists (SACLs) in Active Directory .

Related blog posts


Features and fixes


  • Change of encoding for CSV files from Unicode to UTF8.


  • New feature: Run effective rights report from the command line.
  • New feature: parameter from command line to get modified date of security descriptor in report.
  • Fixing problem when to running compare where objects are missing.

New Features


  • New feature: Run effective rights report from the command line.
  • New feature: parameter from command line to get modified date of security descriptor in report.


  • New output format. Save to excel file without excel installed. Both from UI and command line. Requires ImportExcel PowerShell Module. You can install ImportExcel directly from the Powershell Gallery.

  • Command line support.

  • Custom search filter for scanning objects.

  • Support input from pipeline. You can call ADACLScan.ps1 by sending a distinguishedName via pipeline.

  • Added formated synopsis to the script.


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.
  • Export DACLs/SACLs on Active Directory objects in a Excel sheet.
  • 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