This one was another request. We love requests please send more!
The reader wanted a script that would recursively set the owner of all files in a folder.
As usual the scripting guys are all over this kind of thing.
http://blogs.technet.com/b/heyscriptingguy/archive/2008/04/15/how-can-i-use-windows-powershell-to-determine-the-owner-of-a-file.aspx
Our contribution was putting it in a loop and adding a progress indicator. Vital sanity proofing if you are going to watch this thing as it runs over thousands of files...
$path = c:\test
$objUser = New-Object System.Security.Principal.NTAccount("SOMEDOMAIN", "SOMEUSER") $list = get-childitem $path -recurse $count = $list.count $i = 0 foreach ($file in $list) { $i++ $prog = ($i/$count) * 100 Write-Progress -Activity "Processing" -percentcomplete $prog -Status $file.fullname $objFile = Get-Acl $file.fullname $objFile.SetOwner($objUser) Set-Acl -aclobject $objFile -path $file.fullname } |
Working with Access Control Lists is a bit funny. We can't just add things to the ACL we've got make a copy of it;
$objFile = Get-Acl $file.fullname
Perform the modification;
$objFile.SetOwner($objUser)
and then apply it to the file as a new ACL.
Set-Acl -aclobject $objFile -path $file.fullname
No comments:
Post a Comment