Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I'm trying to use Powershell to change owner of a folder, recursively.

I'm basically using this code:

$acct1 = New-Object System.Security.Principal.NTAccount('DOMAIN\Enterprise Admins')
$profilefolder = Get-Item MyFolder
$acl1 = $profilefolder.GetAccessControl()
$acl1.SetOwner($acct1)
set-acl -aclobject $acl1 -path MyFolder

This will change ownership at the first level, but not for any subfolders or files. Is there a way to extend the scope to all content of MyFolder?

share|improve this question

2 Answers 2

The Set-ACL cmdlet will take the path parameter from the pipe, so the recommended way is to pipe the contents of a directory to set the owner on each item:

dir -r c:\Users\goyuix\temp | set-acl -aclobject $acl1

That will recursively set the owner on all the folders/files in the temp directory in my profile.

share|improve this answer

The takeown command does exactly what you're trying to do. It's a regular windows utility.

This snippet will apply ownership to the current user, but you can set it to any user you want.

http://technet.microsoft.com/en-us/library/cc753024(v=ws.10).aspx

takeown /f "c:\folder\subfolder" /r

If you run into trouble make sure you are running the cmd/powershell window with administrator permissions. Same applies to the other powershell specific answer.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.