I need a tool to compare acls on a windows pc

I want to make a snapshot before the modification of security and a snapshot after these modifications.
I need to investigate which modifications have been made ( security-aclwise), to a pc by an installation package.

0 Comments   [ + ] Show comments

Answers (1)

Posted by: MSIPackager 12 years ago
3rd Degree Black Belt
You can use pracl.exe to dump existing acls to a text file - you could do this to both configurations then use your favourite comparison tool to see the differences in the two text files.

There's a catch though - pracl.exe is not free (unless your firm already has it) - in fact I undestand it's quite expensive...

I don't know of any alternatives but some bright spark on here might...


EDIT: Have a look at this: http://www.codeproject.com/KB/vbscript/VBScript_ACL_Crawl.aspx

' ListACL.vbs

' ACL Modifications by CyberneticWraith, 2005

' Changed it to display ACL information for folders

' Uses "cacls.exe"

' Run with cscript!



' IndexScripts()



' Written by Keep Bertha Surfin Heavy Industries,

' a division of Keep Bertha Surfin Electrical Concern

' Version 1.0 - KeepBerthaSurfin@Hotmail.com


' First thing, check the argument list for a directory.

' If they didn't specify one, use the current directory.

option explicit

' Run the function :)

call IndexScripts

sub IndexScripts()

dim fso
set fso = createobject("scripting.filesystemobject")

dim loc
if WScript.Arguments.Count = 0 then
loc = fso.GetAbsolutePathName(".")
loc = WScript.Arguments(0)
end if

GetWorkingFolder loc, 0, 1, "|"

set fso = nothing

End Sub

' called recursively to get a folder to work in

function GetWorkingFolder(foldspec, foldcount, _
firsttime, spacer)

Dim objShell,oExec
Set objShell = CreateObject("WScript.Shell")

dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

dim fold
set fold = fso.GetFolder(foldspec)

dim foldcol
set foldcol = fold.SubFolders

'do the first folder stuff

if firsttime = 1 then
wscript.echo fold.path

foldcount = foldcol.count
firsttime = 0
end if

dim remaincount
remaincount = foldcol.count

'do the subfolder stuff

dim sf
for each sf in foldcol

'execute cacls to display ACL information

Set oExec = _
objShell.Exec("cacls " & chr(34) & sf.path & chr(34))

Do While Not oExec.StdOut.AtEndOfStream
str = oExec.StdOut.ReadAll
Dim str
Wscript.StdOut.WriteLine str

set oExec = nothing

remaincount = GetWorkingFolder (foldspec +"\"+sf.name, _
remaincount, firsttime, spacer)


'clean up

set fso = nothing

GetWorkingFolder = foldcount - 1

end function
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Don't be a Stranger!

Sign up today to participate, stay informed, earn points and establish a reputation for yourself!

Sign up! or login


This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ