none
Script modification permission clé registre RRS feed

  • Question

  • Bonjour,

    Je m'arrache les cheveux depuis un bout de temps sur ce script pour modifier les droits sur une clé de registre.

    Je souhaite, sur la clé hkcu:\software\pinpon , refuser toutes modification par n'importe qui...

    voila le script que j'ai fait/moduler:

    $acl = Get-Acl HKCU:\Software\Locky
    $person = [System.Security.Principal.NTAccount]"$env:userdomain\$env:username"
    $access = [System.Security.AccessControl.RegistryRights]"FullControl"
    $inheritance = [System.Security.AccessControl.InheritanceFlags]"None"
    $propagation = [System.Security.AccessControl.PropagationFlags]"None"
    $type = [System.Security.AccessControl.AccessControlType]"Deny"
    $rule = New-Object System.Security.AccessControl.RegistryAccessRule(`
    $person,$access,$inheritance,$propagation,$type)
    $acl.AddAccessRule($rule)
    Set-Acl HKCU:\Software\Locky $acl

    Et voila le message d'erreur que j'obtiens a chaque fois:

    Impossible d’appeler une méthode dans une expression Null.
    Au caractère C:\crypto.ps1:9 : 1
    + $acl.AddAccessRule($rule)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation : (:) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull
     
    Set-Acl : Impossible de lier l'argument au paramètre « AclObject », car il a la valeur Null.
    Au caractère C:\crypto.ps1:10 : 30
    + Set-Acl HKCU:\Software\Locky $acl
    +                              ~~~~
        + CategoryInfo          : InvalidData : (:) [Set-Acl], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.SetAclCommand
     

    Y aurait-il quelqu'un qui puisse me venir en aide ?

    Un grand merci d'avance à vous...

    Serge

    jeudi 24 mars 2016 15:35

Toutes les réponses

  • Bonjour,

    Je reviens a la charge :)

    j'ai modifier le script... ca fonctionne bien maintenant mais impossible de l'executer en gpo.... :(

    voila le nouveau script:

    $path = 'hkcu:\software\Locky'
    $acl = (Get-Item $path).GetAccessControl('Access')
    $acl.SetAccessRuleProtection($true,$true)
    set-acl $path -AclObject $acl
    $acl = (Get-Item $path).GetAccessControl('Access')
    $acl.Access | where {$_.identityreference -eq"$env:userdomain\$env:username"} |%{$acl.RemoveAccessRule($_)}
    Set-Acl $path -AclObject $acl

    Par contre j'ai l'impression que ca me bloque les profils utilisateurs... je continue de chercher, si qulqu'un a une piste je suis preneur...

    merci

    vendredi 25 mars 2016 16:03
  • C'est un script powershell avec une modification sur le HKCU donc pour pouvoir l'exécuter via GPO il y a plusieurs prérequis :

    -La gpo doit etre une GPO utilisateur

    -Le script doit etre sur un partage accessible a cet utilisateur.

    -L'exécution des script powershell ne doit pas empecher l'exécution du script. (tester en unrestricted si jamais il y a un doute)

    mardi 28 juin 2016 20:38