none
Изменение владельца реестра через скрипт powershell RRS feed

  • Вопрос

  • Добрый день. Я хочу поменять владельца у объекта {05d7b0f4-2121-4eff-bf6b-ed3f69b894d9} в HKEY_CLASSES_ROOT, в результате чего родился ниже приведенный скрипт:

    New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
    $acl = Get-Acl HKCR:\CLSID\"{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}"
    $newOwner = [System.Security.Principal.NTAccount]"$env:userdomain$env:username"
    $acl.SetOwner($newOwner)
    $person = [System.Security.Principal.NTAccount]"Administrators"
    $access = [System.Security.AccessControl.RegistryRights]"FullControl"
    $inheritance = [System.Security.AccessControl.InheritanceFlags]"None"
    $propagation = [System.Security.AccessControl.PropagationFlags]"None"
    $type = [System.Security.AccessControl.AccessControlType]"Allow"
    $rule = New-Object System.Security.AccessControl.RegistryAccessRule("$person","$access","$inheritance","$propagation","$type")
    $acl.SetAccessRule($rule)
    $acl | Set-Acl
    К сожалению, скрипт вылетает на 3 строке, никак не могу понять, почему.  Видел тут решение подобной задачи через wmi, но я в нём не в зуб ногой, поэтому он не подходит. В powershell немного разбираюсь, но всё равно нужна ваша помощь. Подскажите, где я ошибся.


    22 ноября 2019 г. 7:46

Все ответы

  • из простого у вас слеша не хватает между доменом и пользюком

    The opinion expressed by me is not an official position of Microsoft

    22 ноября 2019 г. 7:54
    Модератор
  • Да, слона то я и не заметил. Теперь вылетает после 10.
    $acl.SetAccessRule($rule)
    Исключение при вызове "SetAccessRule" с "1" аргументами: "Некоторые или ссылки на свойства нельзя преобразовать."
    строка:1 знак:1
    + $acl.SetAccessRule($rule)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : IdentityNotMappedException
    22 ноября 2019 г. 8:04
  • Если использование методов Powershell для Вас не принципиально, можете попробовать использовать для раздачи прав утилиту SetACL (https://helgeklein.com/setacl/).
    26 ноября 2019 г. 19:22