One of the ways you will view or edit the security information for objects in the Windows file system is through the CACLS command.
However, CACLS only covers a limited range of functions and objects, and can't address more complex scenarios, such as when you need to move security information between objects or domains.
Fortunately, Microsoft took the time to write another command-line tool, and a very powerful and flexible one at that, called SubInACL. It is a free download available from (http://www.microsoft.com/downloads/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=en) for Windows 2000, Windows XP and all editions of Windows Server 2003.
SubInACL can audit security information not just about files, but also Registry keys and services, and can transfer security information among users, groups, domains, and of course, objects themselves.
The full command set for SubInACL is documented in an HTML file included with the program. When you pass any command to SubInACL, you can also supply a switch, /testmode, that determines if the changes in question can be made but doesn't actually change them. This is useful if you are, for instance, supplying a SID or a domainusername as a parameter and aren't sure they're correct, or simply want to audit the results of a whole slew of scripted commands passed to SubInACL.
Another useful switch if you're doing batch processing is /offlinesam, which lets you refer the program to a dump file with a list of SIDs instead of attempting to look them up on the computer itself. This is handy if the domain you normally work with for those objects isn't accessible or has been taken offline. (The dump file can be produced by running SubInACL itself using the /dumpcachedsids switch.)
Note that you won't be able to use SubInACL if you're running it in the context of a user account that isn't allowed to modify object or user security information.
Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter. Check out his Windows 2000 blog for his latest advice and musings on the world of Windows network administrators -- please share your thoughts as well!