Win32_Service射击管理异常(访问被拒绝)

问题描述 投票:0回答:2
ManagementObjectSearcher servSearcher = new ManagementObjectSearcher(theScope, new ObjectQuery("SELECT * FROM Win32_Service"));                    
foreach (ManagementObject servObj in servSearcher.Get()){

}

Win32_Process不会触发任何错误但是当试图访问Win32_Service时它会发出管理异常(访问被拒绝)

System.Management.ManagementException: Access denied at 
System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)at
System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext() 
asp.net wmi
2个回答
1
投票

尝试设置或添加dword

 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy = 1

在您要连接的计算机上。就我而言,即使没有重启也能工作。


0
投票

通过添加ManagementScopeConnectionOptions类来尝试以下方法:

 ConnectionOptions options = new ConnectionOptions();
 options.EnablePrivileges = true;
 options.Impersonation = System.Management.ImpersonationLevel.Impersonate;

 ManagementScope scope = new ManagementScope("\\\\FullComputerName\\root\\cimv2",options);

 ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Service");
 ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); 

 ManagementObjectCollection queryCollection = searcher.Get(); 

 foreach (ManagementObject m in queryCollection) {
     Console.WriteLine(m["CheckPoint"]); 
 }

更多关于ConnectionOptions class

© www.soinside.com 2019 - 2024. All rights reserved.