Thay đổi chủ sở hữu đệ quy với Powershell?


9

Tôi đang cố gắng sử dụng Powershell để thay đổi chủ sở hữu của một thư mục, theo cách đệ quy.

Về cơ bản tôi đang sử dụng mã này:

$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

Điều này sẽ thay đổi quyền sở hữu ở cấp độ đầu tiên, nhưng không thay đổi đối với bất kỳ thư mục con hoặc tệp nào. Có cách nào để mở rộng phạm vi cho tất cả nội dung của MyFolder?

Câu trả lời:


17

Lệnh Takeown thực hiện chính xác những gì bạn đang cố gắng thực hiện. Đây là một tiện ích windows thông thường.

Đoạn mã này sẽ áp dụng quyền sở hữu cho người dùng hiện tại, nhưng bạn có thể đặt nó cho bất kỳ người dùng nào bạn muốn.

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

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

Nếu bạn gặp sự cố, hãy đảm bảo bạn đang chạy cửa sổ cmd / powershell với quyền của quản trị viên. Áp dụng tương tự cho các câu trả lời cụ thể quyền hạn khác.


1
Doe snot này dường như hoạt động để đặt chủ sở hữu thành một nhóm (Khác với "Quản trị viên")
Gert van den Berg

5

Lệnh ghép ngắn Set-ACL sẽ lấy tham số đường dẫn từ đường ống, vì vậy cách được khuyến nghị là đặt nội dung của thư mục để đặt chủ sở hữu trên mỗi mục:

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

Điều đó sẽ đệ quy đặt chủ sở hữu trên tất cả các thư mục / tệp trong thư mục tạm thời trong hồ sơ của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.