2016-12-20 5 views
0

Могу ли я установить владельца и группу безопасности для файла с использованием Powershell? Я имею в виду, могу я, например, изменить CVWINSERV1\None на BUILTIN\Administrators?Powershell - группа безопасности владельца

Path : Microsoft.PowerShell.Core\FileSystem::C:\dev\lpeg.dll 
Owner : BUILTIN\Administrators 
Group : CVWINSERV1\None 
Access : NT AUTHORITY\SYSTEM Allow FullControl 
     BUILTIN\Administrators Allow FullControl 
     BUILTIN\Users Allow ReadAndExecute, Synchronize 
Audit : 
Sddl : O:BAG:S-1-5-21-704654959-829129038-1184563323-513D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;0x1200a9;;;BU) 

Весь сценарий таков: я копирую файл в проводнике Windows под своей учетной записью. После этого в моем приложении (используя Tomcat, который работает под другой учетной записью) я копирую файл в новую папку назначения, устанавливаю разрешения и владельца. Разрешения устанавливаются без проблем, также как и пользователь-владелец, но я не могу изменить домен (?) Владельца. Я думал, что это своего рода символическая ссылка, но она совсем не меняется.

+0

вы пробовали? Что-то не работает? –

+0

Я использую icacls вот так: 'icacls C: \ dev \ lpeg.dll/setowner BUILTIN \ Administrator;'. Здесь я установил владельца, но группа безопасности по-прежнему «CVWINSERV1 \ None». Я думаю, что я определенно делаю что-то неправильно. – iozee

+0

Вы просто устанавливаете владельца. Для предоставления разрешений используйте «icacls C: \ dev \ lpeg.dll/grant ...». –

ответ

2

Использование Get-Acl для получения ACL, а затем вызвать метод SetGroup() установить группу:

$ACL = Get-Acl .\path\to\file 
$Admins = New-Object System.Security.Principal.NTAccount 'BUILTIN\Administrators' 
$ACL.SetGroup($Admins) 
$ACL |Set-Acl .\path\to\file