farag
30-11-2017, 14:40
$sid = (Get-CimInstance Win32_UserAccount -Filter "name='$env:USERNAME'").SID
$admins = New-Object System.Security.Principal.SecurityIdentifier("$sid")
$admins = $admins.Translate([System.Security.Principal.NTAccount])
$key = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpe\UserChoice", "ReadWriteSubTree", "TakeOwnership")
$acl = $key.GetAccessControl()
$acl.SetOwner($admins)
$key.SetAccessControl($acl)
$acl = $key.GetAccessControl()
$rule = New-Object System.Security.AccessControl.RegistryAccessRule($admins, "FullControl", "Allow")
$acl.SetAccessRule($rule)
$key.SetAccessControl($acl)
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpe\UserChoice" -Name ProgId -Value PhotoViewer.FileAssoc.Jpeg -Force
Но выдает "New-ItemProperty : Запрошенный доступ к реестру запрещен". Где скрывается ошибка?
Если смотреть через графику, то напротив "Запретить" у текущего пользователя стоит галочка напротив "Особые разрешения".
Можно как-то сделать универсальное решение с помощью скрипта, чтобы по-любому становиться владельцем папки в реестре и снимать такого рода ограничения?
$admins = New-Object System.Security.Principal.SecurityIdentifier("$sid")
$admins = $admins.Translate([System.Security.Principal.NTAccount])
$key = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpe\UserChoice", "ReadWriteSubTree", "TakeOwnership")
$acl = $key.GetAccessControl()
$acl.SetOwner($admins)
$key.SetAccessControl($acl)
$acl = $key.GetAccessControl()
$rule = New-Object System.Security.AccessControl.RegistryAccessRule($admins, "FullControl", "Allow")
$acl.SetAccessRule($rule)
$key.SetAccessControl($acl)
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpe\UserChoice" -Name ProgId -Value PhotoViewer.FileAssoc.Jpeg -Force
Но выдает "New-ItemProperty : Запрошенный доступ к реестру запрещен". Где скрывается ошибка?
Если смотреть через графику, то напротив "Запретить" у текущего пользователя стоит галочка напротив "Особые разрешения".
Можно как-то сделать универсальное решение с помощью скрипта, чтобы по-любому становиться владельцем папки в реестре и снимать такого рода ограничения?