2016-07-06 18 views
5

aşağıdaki sorguyu yürütmek çalışırken "Geçersiz Sorgu" durum almaya devam. MSDN göre WMI .NET Geçersiz sorgu

: fıkra, WMI bayrakları sorgu geçersiz olarak ve hata verir NEREDE bir sınıf tanımlayıcıları Birçok kullanım için

. Ancak, WMI'de type nesnesinin özellikleri için nokta (.) işlecini kullanın.

SEÇ * Sınıfım GELEN Prop.embedprop =

5 bu sadece eser eğer demek: Prop Sınıfım geçerli bir özelliktir ve tipi nesne ise Örneğin, aşağıdaki sorgu geçerlidir Prop, AMAÇ olarak ilan edildi mi?

System.Management.ManagementException was unhandled 
    HResult=-2146233087 
    Message=Invalid query 
    Source=System.Management 
    StackTrace: 
     в System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode) 
     в System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext() 
     в UserQuota.Program.getQuota() в c:\users\administrator\documents\visual studio 2015\Projects\UserQuota\UserQuota\Program.cs:строка 40 
     в UserQuota.Program.Main(String[] args) в c:\users\administrator\documents\visual studio 2015\Projects\UserQuota\UserQuota\Program.cs:строка 33 
     в System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
     в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 
     в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
     в System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
     в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     в System.Threading.ThreadHelper.ThreadStart() 
    InnerException: 
+0

sağ görünüyor (... tüm kaçışa dikkat edin)

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskQuota WHERE QuotaVolume = \"Win32_LogicalDisk.DeviceID=\\\"C:\\\"\""); ManagementObjectCollection quotaCollection = searcher.Get(); 

:

Bunun yerine, böyle bir şey kullanabilirsiniz. İstisnaları yakalamanız ve içeriği bir [edit] dosyasına yapıştırmanız gerekir. Nesnede ToString'i arayın veya istisna diyalog penceresini kullanın (alttaki "panoya içeriği yapıştır" bağlantısını tıklayın). – Will

+1

Özel durumu ekledim ama çok fazla detayı yok gibi görünüyor ... –

+0

Cevabımı umarım yardımcı olacak örnek kodla düzenledim. – Tomer

cevap

1

Evet:

İşte istisna detaylar. Win32_DiskQuota class documentation göre, QuotaVolume özelliği bir Win32_LogicalDisk WMI sınıfının bir başvurudur. Sağladığınız MSDN'deki teklif, WQL özelliklerine göre sorgunun neden geçersiz olduğunu açıkladı.

+0

Bu benim için çalıştı, teşekkürler! –