Active-Directory

“不允許請求的系統資料庫訪問。”電源外殼

  • November 25, 2017

我正在嘗試查找位於 NTDS 服務中的 DC 的數據庫大小。我的腳本是:

$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 controlread權限。我所做的是,右鍵點擊Parameter選擇permissions並添加我的帳戶。

我回來再次執行腳本。我得到了同樣的錯誤!

順便說一句,它適用於管理員帳戶。我想在不使用域管理員帳戶的情況下執行查詢。

這種情況的原因是什麼?非常感謝!

第1步。

為系統資料庫項分配權限

  1. 點擊要分配權限的鍵。
  2. 在編輯菜單上,點擊權限。
  3. 點擊要使用的組或使用者名。
  4. 為密鑰分配以下訪問級別之一: 選中允許複選框

讀取以授予讀取關鍵內容的權限,但不保存任何更改。選中完全控制的允許複選框以授予打開、編輯和獲取密鑰所有權的權限。

  1. 若要授予密鑰中的特殊權限,請點擊“高級”,然後點兩下要分配特殊訪問權限的使用者或組。在權限下,為您要允許或拒絕的每個權限選擇允許或拒絕複選框。

第2步。

Windows Server 2003 域控制器

  1. 打開組策略編輯器
  2. 導航到本地電腦策略 > 電腦配置 > 策略 > Windows 設置 > 安全設置 > 系統服務
  3. 在右側窗格中找到遠端系統資料庫
  4. 定義策略,並將啟動類型設置為自動
  5. eboot 客戶端以應用策略

Windows Server 2008 或更新的域控制器

  1. 打開組策略編輯器
  2. 展開電腦配置 > 策略 > Windows 設置 > 安全設置 > 系統服務
  3. 找到遠端系統資料庫項,將服務啟動模式更改為自動
  4. 重新啟動客戶端以應用策略

步驟 3。

打開本地組策略編輯器電腦配置 -> Windows 設置 -> 安全設置 -> 本地策略 -> 安全選項 -> 網路訪問屬性:遠端訪問的系統資料庫路徑和子路徑 -> 在本地策略設置選項卡中添加您的系統資料庫子-您要查詢的路徑

例如:System\CurrentControlSet\Control\ContentIndex

引用自:https://serverfault.com/questions/884292