@@ -72,26 +72,31 @@ jobs:
7272 function Reset-AclRecursive {
7373 param([string]$Path)
7474 if (-not (Test-Path $Path)) { return }
75+
7576 # снять атрибуты
7677 attrib -r -h -s "$Path" /S /D 2>$null
77- # включить наследование временно, чтобы снять странные ACE
78+
79+ # включить наследование временно
7880 icacls "$Path" /inheritance:e /T /C | Out-Null
79- # удалить всё и пересоздать
81+
82+ # удалить и пересоздать
8083 try { Remove-Item "$Path" -Recurse -Force -ErrorAction SilentlyContinue } catch {}
8184 New-Item -ItemType Directory -Force -Path "$Path" | Out-Null
8285
83- # отключить наследование и установить явные ACE
86+ # отключить наследование и задать явные ACE
8487 icacls "$Path" /inheritance:d /T /C | Out-Null
85- # Права: текущий пользователь, Users, SYSTEM — Full
88+
8689 $me = "$env:USERDOMAIN\$env:USERNAME"
87- icacls "$Path" /grant:r "$me:(OI)(CI)F" /T /C | Out-Null
88- icacls "$Path" /grant:r "*S-1-5-18:(OI)(CI)F" /T /C | Out-Null # SYSTEM
89- icacls "$Path" /grant:r "*S-1-5-32-545:(OI)(CI)F" /T /C | Out-Null # BUILTIN\Users
90- # Владелец — текущий пользователь
90+ # Владелец: текущий пользователь
9191 takeown /F "$Path" /R /D Y | Out-Null
9292 cmd /c "icacls ""$Path"" /setowner ""$me"" /T /C" | Out-Null
9393
94- # ещё раз снять атрибуты на случай системных файлов
94+ # Полные права: текущий пользователь, SYSTEM, BUILTIN\Users
95+ icacls "$Path" /grant:r "${me}:(OI)(CI)F" /T /C | Out-Null
96+ icacls "$Path" /grant:r "*S-1-5-18:(OI)(CI)F" /T /C | Out-Null # SYSTEM
97+ icacls "$Path" /grant:r "*S-1-5-32-545:(OI)(CI)F" /T /C | Out-Null # BUILTIN\Users
98+
99+ # ещё раз снять атрибуты
95100 attrib -r -h -s "$Path" /S /D 2>$null
96101 }
97102
0 commit comments