Powershell을 사용하여 폴더 소유자를 재귀 적으로 변경하려고합니다.
나는 기본적 으로이 코드를 사용하고 있습니다 :
$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
이렇게하면 첫 번째 수준에서 소유권이 변경되지만 하위 폴더 나 파일은 변경되지 않습니다. 범위를의 모든 내용으로 확장하는 방법이 MyFolder
있습니까?
답변
takeown 명령은 수행하려는 작업을 정확하게 수행합니다. 일반적인 Windows 유틸리티입니다.
이 스 니펫은 현재 사용자에게 소유권을 적용하지만 원하는 사용자로 설정할 수 있습니다.
http://technet.microsoft.com/en-us/library/cc753024(v=ws.10).aspx
takeown /f "c:\folder\subfolder" /r
문제가 발생하면 관리자 권한으로 cmd / powershell 창을 실행하고 있는지 확인하십시오. 다른 powershell 특정 답변에도 동일하게 적용됩니다.
답변
Set-ACL cmdlet은 파이프에서 path 매개 변수를 사용하므로 권장되는 방법은 디렉터리의 내용을 파이프하여 각 항목에 소유자를 설정하는 것입니다.
dir -r c:\Users\goyuix\temp | set-acl -aclobject $acl1
내 프로필의 temp 디렉토리에있는 모든 폴더 / 파일의 소유자를 재귀 적으로 설정합니다.