Active-Directory
“不允許請求的系統資料庫訪問。”電源外殼
我正在嘗試查找位於 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 control
和read
權限。我所做的是,右鍵點擊Parameter
選擇permissions
並添加我的帳戶。我回來再次執行腳本。我得到了同樣的錯誤!
順便說一句,它適用於管理員帳戶。我想在不使用域管理員帳戶的情況下執行查詢。
這種情況的原因是什麼?非常感謝!
第1步。
為系統資料庫項分配權限
- 點擊要分配權限的鍵。
- 在編輯菜單上,點擊權限。
- 點擊要使用的組或使用者名。
- 為密鑰分配以下訪問級別之一: 選中允許複選框
讀取以授予讀取關鍵內容的權限,但不保存任何更改。選中完全控制的允許複選框以授予打開、編輯和獲取密鑰所有權的權限。
- 若要授予密鑰中的特殊權限,請點擊“高級”,然後點兩下要分配特殊訪問權限的使用者或組。在權限下,為您要允許或拒絕的每個權限選擇允許或拒絕複選框。
第2步。
Windows Server 2003 域控制器
- 打開組策略編輯器
- 導航到本地電腦策略 > 電腦配置 > 策略 > Windows 設置 > 安全設置 > 系統服務
- 在右側窗格中找到遠端系統資料庫
- 定義策略,並將啟動類型設置為自動
- eboot 客戶端以應用策略
Windows Server 2008 或更新的域控制器
- 打開組策略編輯器
- 展開電腦配置 > 策略 > Windows 設置 > 安全設置 > 系統服務
- 找到遠端系統資料庫項,將服務啟動模式更改為自動
- 重新啟動客戶端以應用策略
步驟 3。
打開本地組策略編輯器電腦配置 -> Windows 設置 -> 安全設置 -> 本地策略 -> 安全選項 -> 網路訪問屬性:遠端訪問的系統資料庫路徑和子路徑 -> 在本地策略設置選項卡中添加您的系統資料庫子-您要查詢的路徑
例如:
System\CurrentControlSet\Control\ContentIndex