Изменить владельца рекурсивно с Powershell?

Похоже, что RSA предлагает 'Агент Аутентификации' на их странице загрузки. Это - вероятно, просто модуль PAM, который необходимо будет установить; у них должны быть детали и инструкции.

9
задан 2 April 2012 в 17:03
3 ответа

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.

4
ответ дан 2 December 2019 в 22:23

Команда takeown точно выполняет что ты пытаешься сделать. Это обычная утилита для Windows.

Этот фрагмент кода применит право владения к текущему пользователю, но вы можете установить его для любого пользователя, которого хотите.

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

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

Если у вас возникнут проблемы, убедитесь, что вы запускаете окно cmd / powershell с правами администратора.

16
ответ дан 2 December 2019 в 22:23

Используйте Get-ChildItem, чтобы получить все подчиненные папки и файлы и изменить владельца для каждого из них:

$identityReference = [System.Security.Principal.NTAccount]::new('<new-owner-username>')
Get-Item C:\Path\To\Folder `
    | foreach { $_ ; $_ | Get-ChildItem -Force -Recurse } `
    | foreach { $acl = $_ | Get-Acl; $acl.SetOwner($identityReference); $_ | Set-Acl -AclObject $acl }

Я думаю, что это тоже takeown.exe и графический интерфейс в принципе тоже.

Предостережение: Чтобы это работало, вам нужны права на чтение содержимого папок и ACL. (Я думаю, что takeown и графический интерфейс могут и в некоторых случаях работают с некоторыми (явными) отсутствующими разрешениями.)

Бонус: в Windows 10/2016+ вы можете установить ключ реестра и может не страдать от ограничения длины пути к файлу в 260 символов при использовании PowerShell.

0
ответ дан 1 February 2021 в 19:25

Теги

Похожие вопросы