2 votes

"L'accès au registre demandé n'est pas autorisé." Powershell

J'essaie de trouver la taille de la base de données de DC qui est située dans le service NTDS. Mon script est :

$Computer = "abe.com"
$Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $computer)     

$RegKey=$Reg.OpenSubKey("SYSTEM\\CurrentControlSet\\services\\NTDS\\Parameters" 
$NTDSPath = $Regkey.GetValue("DSA Database file") 
$NTDSREMOTEPath =  "\\$computer\$NTDSPath" -replace ":","$" 
$NTDSREMOTEPath = Get-item $NTDSREMOTEPath | Select-Object -ExpandProperty Length 

($NTDSREMOTEPath /1GB).ToString("0.000"+" GB") 

Après avoir exécuté ceci, j'ai eu une erreur :

Exception calling "OpenSubKey" with "1" argument(s): "Requested registry access is not allowed."
At C:\Users\Documents\HealthCheck\hardwareMonitoring.ps1:40 char:1
+ $RegKey= $Reg.OpenSubKey("SYSTEM\\CurrentControlSet\\services\\NTDS\\Parameters" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SecurityException

You cannot call a method on a null-valued expression.
At C:\Users\Documents\HealthCheck\hardwareMonitoring.ps1:41 char:1
+ $NTDSPath = $Regkey.GetValue("DSA Database file")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Get-item : Cannot find path '\\abc.com\' because it does not exist.
At C:\Users\Documents\HealthCheck\hardwareMonitoring.ps1:43 char:19
+ $NTDSREMOTEPath = Get-item $NTDSREMOTEPath | Select-Object -ExpandProperty Lengt ...
+                   ~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (\\abc.com\:String) [Get-Item], ItemNotFoundE 
   xception
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand

Je me suis rendu compte que mon compte n'a pas la permission suffisante pour interroger ce chemin à partir de regedit SYSTEM\\CurrentControlSet\\services\\NTDS\\Parameters .

J'ai décidé de me connecter à "abc.com" et j'ai ajouté mon compte avec full control y read droits. Ce que j'ai fait, c'est un clic droit sur Parameter choisissez permissions et ajouter mon compte dans.

Je suis revenu pour exécuter à nouveau le script. J'ai eu la même erreur !

Cela fonctionne avec le compte Admin d'ailleurs. Je veux exécuter la requête sans utiliser de compte administrateur de domaine.

Quelle est la raison dans ce cas ? Merci beaucoup !

2voto

Étape 1.

Attribution de permissions à une clé de registre

  1. Cliquez sur la clé à laquelle vous voulez attribuer des autorisations.
  2. Dans le menu Édition, cliquez sur Permissions.
  3. Cliquez sur le groupe ou le nom d'utilisateur avec lequel vous voulez travailler.
  4. Attribuez l'un des niveaux d'accès suivants à la clé : Cochez la case Autoriser pour

Read pour donner la permission de lire le contenu de la clé, mais sans enregistrer les modifications. Cochez la case Autoriser pour Contrôle total pour autoriser l'ouverture, la modification et la prise de possession de la clé.

  1. Pour accorder une autorisation spéciale dans la clé, cliquez sur Avancé, puis double-cliquez sur l'utilisateur ou le groupe auquel vous souhaitez attribuer un accès spécial. Sous Autorisations, sélectionnez l'option Autoriser ou Refuser pour chaque autorisation que vous souhaitez autoriser ou refuser.

Étape 2.

Contrôleur de domaine Windows Server 2003

  1. Ouvrez l'éditeur de stratégie de groupe
  2. Naviguez jusqu'à, Local Computer Policy > Computer Configuration > Policies > Windows Settings > Security Settings > System Services
  3. Dans le volet de droite, localisez Remote Registry
  4. Définissez la politique, et définissez le type de démarrage sur Automatique.
  5. redémarrer les clients pour appliquer la politique

Contrôleur de domaine Windows Server 2008 ou plus récent

  1. Ouvrez l'éditeur de stratégie de groupe
  2. Développez Configuration de l'ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Services système.
  3. Trouvez l'élément du registre distant et changez le mode de démarrage du service en automatique.
  4. Redémarrez les clients pour appliquer la politique

Étape 3.

Ouvrir l'éditeur de politique de groupe local Configuration de l'ordinateur -> Paramètres Windows -> Paramètres de sécurité -> Stratégies locales -> Options de sécurité -> Propriétés de l'accès réseau : Chemins et sous-trajets du registre accessibles à distance -> dans l'onglet Paramètres des stratégies locales, ajoutez les sous-trajets du registre que vous souhaitez interroger.

Par exemple : System\CurrentControlSet\Control\ContentIndex

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X