|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Сброс прав на папку через Set-Acl |
|
PowerShell - Сброс прав на папку через Set-Acl
|
Пользователь Сообщения: 148 |
Здравствуйте!
Имеется вот такая папка: PS C:\Windows\system32> Get-Acl -Path c:\temp | Format-List Path : Microsoft.PowerShell.Core\FileSystem::C:\temp Owner : BUILTIN\Администраторы Group : BUILTIN\Администраторы Access : Audit : Sddl : O:BAG:BAD:PAI Привилегии не установлены. Хочу сбросить права с использованием строки SDDL. Powershell запущен с повышенными правами. Юзер находится в группе "Администраторы". $SD = Get-Acl -Path c:\temp $SD.SetSecurityDescriptorSddlForm('O:BAG:BAD:PAI(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;BU)') PS C:\Windows\system32> Set-Acl -Path c:\temp -AclObject $SD Set-Acl : Попытка выполнить несанкционированную операцию. At line:1 char:1 + Set-Acl -Path c:\temp -AclObject $SD + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (C:\temp:String) [Set-Acl], UnauthorizedAccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetAclCommand SDDL корректен. Тоже самое происходит, если сделать без SetSecurityDescriptorSddlForm, при попытке перенести права, например, с C:\Windows. 2) Попытно вопрос, как записать однострочником, что-то вроде: Некорректно отрабатывает. Ошибок нет, но новые права не применены. Спасибо. |
|
------- Отправлено: 18:40, 19-02-2021 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата Dragokas:
Цитата Dragokas:
Можно так: |
||
------- Отправлено: 21:29, 19-02-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать На всякий, версия 5.1?
У меня этот код отрабатывает, не могу пока воспроизвести ошибку: cls $path = 'c:\test' $newParam = 'O:BAG:BAD:PAI(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;BU)' $SD = Get-Acl -Path $path $SD|FL "Sddl До:`n`t"+$SD.Sddl $SD.SetSecurityDescriptorSddlForm($newParam) Set-Acl -Path $path -AclObject $SD $SDnew = Get-Acl -Path $path "Sddl После:`n`t"+$SDnew.Sddl |
Отправлено: 21:38, 19-02-2021 | #3 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата Fors1k:
|
|
------- Отправлено: 21:42, 19-02-2021 | #4 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Fors1k, а у меня ваш код, увы нет
![]() Лично я условия воссоздавал просто зайдя в свойства папки - отключаю наследование прав от родителя и удаляю все явно назначенные права, если есть. Windows 7 x64. PS C:\Windows\system32> (Get-Command Set-Acl).Version Major Minor Build Revision ----- ----- ----- -------- 3 0 0 0 PS C:\Windows\system32> (Get-Host).Version Major Minor Build Revision ----- ----- ----- -------- 5 1 14409 1018 PS C:\Windows\system32> whoami /priv Сведения о привилегиях ---------------------- Имя привилегии Описание Область, край =============================== =========================================== ============= SeAssignPrimaryTokenPrivilege Замена маркера уровня процесса Отключен SeIncreaseQuotaPrivilege Настройка квот памяти для процесса Отключен SeSecurityPrivilege Управление аудитом и журналом безопасности Отключен SeTakeOwnershipPrivilege Смена владельцев файлов и других объектов Отключен SeLoadDriverPrivilege Загрузка и выгрузка драйверов устройств Отключен SeSystemProfilePrivilege Профилирование производительности системы Отключен SeSystemtimePrivilege Изменение системного времени Отключен SeProfileSingleProcessPrivilege Профилирование одного процесса Отключен SeIncreaseBasePriorityPrivilege Увеличение приоритета выполнения Отключен SeCreatePagefilePrivilege Создание файла подкачки Отключен SeBackupPrivilege Архивация файлов и каталогов Отключен SeRestorePrivilege Восстановление файлов и каталогов Отключен SeShutdownPrivilege Завершение работы системы Отключен SeDebugPrivilege Отладка программ включен SeSystemEnvironmentPrivilege Изменение параметров среды изготовителя Отключен SeChangeNotifyPrivilege Обход перекрестной проверки включен SeRemoteShutdownPrivilege Принудительное удаленное завершение работы Отключен SeUndockPrivilege Отключение компьютера от стыковочного узла Отключен SeManageVolumePrivilege Выполнение задач по обслуживанию томов Отключен SeImpersonatePrivilege Имитация клиента после проверки подлинности включен SeCreateGlobalPrivilege Создание глобальных объектов включен SeIncreaseWorkingSetPrivilege Увеличение рабочего набора процесса Отключен SeTimeZonePrivilege Изменение часового пояса Отключен SeCreateSymbolicLinkPrivilege Создание символических ссылок Отключен PS C:\Windows\system32> net user $env:UserName ... Членство в локальных группах *Debugger Users *HomeUsers *individual *Администраторы *Пользователи журналов *Пользователи удаленно Членство в глобальных группах *None PS C:\Windows\system32> cacls "c:\temp" /S:"O:BAG:BAD:PAI(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;BU)" Продолжить? (Y/N)y обработан каталог: c:\temp PS C:\Windows\system32> Get-Acl c:\temp | Format-List Path : Microsoft.PowerShell.Core\FileSystem::C:\temp Owner : BUILTIN\Администраторы Group : BUILTIN\Администраторы Access : NT AUTHORITY\система Allow FullControl BUILTIN\Администраторы Allow FullControl BUILTIN\Пользователи Allow FullControl Audit : Sddl : O:BAG:BAD:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FA;;;BU) На Windows 10 ошибка не воспроизводится. Получается, что это бага ... (?) |
|
------- Отправлено: 18:24, 20-02-2021 | #5 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать Цитата Dragokas:
Проверьте так: cls $isAdmin = [Security.Principal.WindowsPrincipal]::new([Security.Principal.WindowsIdentity]:: GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) if($isAdmin){ $path = 'c:\test' $newParam = 'O:BAG:BAD:PAI(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;BU)' # $SD = Get-Acl -Path $path Write-Host "Sddl До:`n" -fo Yellow $SD|FL $SD.SetSecurityDescriptorSddlForm($newParam) Set-Acl -Path $path -AclObject $SD $SDnew = Get-Acl -Path $path Write-Host "Sddl После:`n" -fo green $SDnew|FL } else{ Write-Host "Запустите PowerShell от имени Администратора" -fo Red } Sddl До: Path : Microsoft.PowerShell.Core\FileSystem::C:\test Owner : BUILTIN\Администраторы Group : BUILTIN\Администраторы Access : Audit : Sddl : O:BAG:BAD:PAI Sddl После: Path : Microsoft.PowerShell.Core\FileSystem::C:\test Owner : BUILTIN\Администраторы Group : BUILTIN\Администраторы Access : NT AUTHORITY\СИСТЕМА Allow FullControl BUILTIN\Администраторы Allow FullControl BUILTIN\Пользователи Allow FullControl Audit : Sddl : O:BAG:BAD:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FA;;;BU) Скрытый текст
Цитата Dragokas:
Код всегда перед глазами ; F8 - запустить строку или выделенный фрагмент ; F5 - запустить весь код - "Чистый кайф" (с) Баста. |
||
Последний раз редактировалось Fors1k, 20-02-2021 в 20:00. Отправлено: 19:50, 20-02-2021 | #6 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 19:58, 20-02-2021 | #7 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать YuS_2, тогда здесь мои полномочия всё
![]() |
Отправлено: 20:10, 20-02-2021 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2012 R2 - Настройка прав на сетевую папку | ChaZmik | Windows Server 2012/2012 R2 | 1 | 17-02-2017 10:56 | |
Доступ - сброс пароля на папку в сети | ivanvol77 | Microsoft Windows 2000/XP | 1 | 06-11-2014 11:25 | |
2008 R2 - Настройка прав на папку NTFS | KAB | Windows Server 2008/2008 R2 | 1 | 05-11-2014 23:19 | |
Наследование прав доступа ACL на подпапки и подуровни | poddex | Microsoft Windows NT/2000/2003 | 4 | 01-11-2010 15:45 | |
Удаленная раздача прав на папку. | Butunin Klim | Microsoft Windows NT/2000/2003 | 2 | 08-12-2006 00:07 |
|