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 !