none
ALTERAR PERMISSÃO DE REGISTRO E CHAVES DO WINDOWS VIA POWERSHELL | NÃO MANJO DE POWERSHELL RRS feed

  • Pergunta

  • Olá, pessoal. Tudo bem?

    Estou com um problema... Estou realizando a instalação de um Antivírus via Powershell afim de que seja silencioso e eu possa faze-lo via GPO, até ai tudo bem... A questão é que, para que ele funcione, é necessário realizar a inserção do token após a instalação, e isso só é possível (no Powershell) adicionando um valor no registro do windows. Porém, não tenho permissão para tal (mesmo utilizando o usuário Administrador). Utilizei o seguinte script para me dar as permissões necessárias, mas mesmo assim não funcionou:

    $acl = Get-Acl HKLM:\SOFTWARE\Antivirus\
    $rule = New-Object System.Security.AccessControl.RegistryAccessRule (“Administrator“,”FullControl“,”Allow”)
    $acl.SetAccessRule($rule)
    $acl |Set-Acl -Path HKLM:\SOFTWARE\Antivirus

    Preciso adicionar o valor dentro da chave "Desktop" que esta na chave "Antivirus" (HKLM:\SOFTWARE\Antivirus\Desktop). Já utilizei o scritp para essa chave \Desktop e também não funciona, nesse caso me é apresentado o seguinte erro:

    Set-Acl : Acesso ao Registro solicitado não é permitido.
    No linha:4 caractere:7
    + $acl |Set-Acl -Path HKLM:\SOFTWARE\Antivirus\Desktop
    +       ~~~~~~~~~~~~~~~~
        + CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACH...Antivirus\Desktop:String) [Set-Acl], SecurityExcept
        ion
        + FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.SetAclCommand


    Mesmo dando permissão à chave Raiz (Antivirus), não tenho permissão à chave Desktop. Quando realizo o procedimento manualmente dando permissão e alterando o proprietário (também para os subcontêineres e objetos) obtenho êxito. 

    Em um grupo mandei meu problema e me foi indicado um link onde seguindo o script abaixo obteria o acesso:

    $key = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey("HKLM:\SOFTWARE\Antivirus\Desktop",[Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::ChangePermissions)
    $acl = $key.GetAccessControl()
    $rule = New-Object System.Security.AccessControl.RegistryAccessRule ("Administrator","FullControl","Allow")
    $acl.SetAccessRule($rule)
    $key.SetAccessControl($acl)

    Porém tenho o erro na sequência:

    Não é possível chamar um método em uma expressão de valor nulo.
    No linha:2 caractere:1
    + $acl = $key.GetAccessControl()
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull
     
    Não é possível chamar um método em uma expressão de valor nulo.
    No linha:4 caractere:1
    + $acl.SetAccessRule($rule)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull
     
    Não é possível chamar um método em uma expressão de valor nulo.
    No linha:5 caractere:1
    + $key.SetAccessControl($acl)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull

    Removi o "()" do $acl = $key.GetAccessControl(), removi também o ($rule) e ($acl), dos $acl.SetAccessRule($rule)$key.SetAccessControl($acl) e o Script foi concluído, porém quando uso o REG ADD HKLM\Software\Antivirus\Desktop /v Nome/t REG_SZ /d TokenQueInformei/f para adicionar o valor que preciso, me é apresentado o erro de acesso negado, conforme abaixo:

    REG : ERRO: Acesso negado.
    No linha:1 caractere:1
    + REG ADD HKLM\Software\Antivirus\Desktop /v InstallToken /t REG_SZ /d GJ ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (ERRO: Acesso negado.:String) [], RemoteException
        + FullyQualifiedErrorId : NativeCommandError

    Não sei o que pode ser feito.... Help? =(

    quarta-feira, 2 de janeiro de 2019 18:09