Я пытаюсь найти размер базы данных DC, который находится в службе NTDS. Мой сценарий:
$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")
После запуска я получил ошибку:
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
Я понял, что у моей учетной записи недостаточно прав для запроса этого пути из regedit SYSTEM\\CurrentControlSet\\services\\NTDS\\Parameters
.
Я решил войти в "abc.com" и добавил свою учетную запись с full control
и read
прав. Что я сделал, так это щелкните правой кнопкой мыши на Parameter
выберите permissions
и добавить мою учетную запись.
Я вернулся, чтобы снова запустить сценарий. У меня такая же ошибка!
Кстати, он работает с учетной записью администратора. Я хочу выполнить запрос без использования учетной записи администратора домена.
В чем причина в этом случае? Спасибо вам большое!
Шаг 1.
Назначение разрешений ключу реестра
Прочитать, чтобы дать разрешение на чтение ключевого содержания, но не сохранять никаких изменений. Установите флажок «Разрешить» для «Полный доступ», чтобы разрешить открытие, редактирование и владение ключом.
Шаг 2.
Контроллер домена Windows Server 2003
Контроллер домена Windows Server 2008 или новее
Шаг 3.
Откройте конфигурацию компьютера в редакторе локальной групповой политики -> Параметры Windows -> Параметры безопасности -> Локальные политики -> Параметры безопасности -> Свойства сетевого доступа: Пути и вложенные пути реестра с удаленным доступом -> на вкладке Настройка локальных политик добавьте свой подраздел реестра. пути, которые вы хотите запросить
Например: System\CurrentControlSet\Control\ContentIndex