目前我正在寫一小塊的代碼來獲得在遠程系統上的IIS託管Web服務的列表,獲取服務信息,而WMI
工作代碼現在的問題是:
string q2 = "select * from Win32_PerfFormattedData_W3SVC_WebService";
ManagementScope scope2 = new ManagementScope(string.Format(@"\\dtp-robaro2\{1}", host, ns), options);
// ns here is string ns = @"root\cimv2";
scope2.Connect();
ManagementObjectSearcher search2 = new ManagementObjectSearcher(scope, new ObjectQuery(q2));
foreach (ManagementObject mo in search2.Get())
{
Console.WriteLine(mo.ClassPath);
Console.WriteLine(mo.GetText(TextFormat.Mof));
}
現在我想知道是否在我查詢的遠程系統上關閉了WMI,然後是否有其他方法可以訪問我使用上述代碼獲得的信息?
你的問題沒有意義。您的WMI查詢實際上是查詢[W3SVC WebService計數器的性能計數器](http://msdn.microsoft.com/en-us/library/aa394298(v = vs.85).aspx?ppud = 4)。我對你試圖達到的目標感到困惑。您是否想要在操作系統上列出已安裝的系統服務,或者在IIS本身中運行的網站?無論哪種情況,使用該WMI查詢都不可能實現您的願望。 – 2011-05-31 18:46:33
如果你看到我在代碼下面寫的句子,那麼它是否有意義?無論如何,我現在使用SC來獲取服務列表,它的工作正常,但我無法檢索遠程系統上安裝在IIS中的網站列表:/任何指針? – 2011-06-02 05:02:08
您的問題沒有意義,因爲即使WMI在遠程系統上可聯繫,您編寫的代碼也不會執行您想要的操作。 SC.exe將只能帶回服務器上安裝的服務,這不是你想要的。您在服務器的OS和Web服務上安裝的服務令人困惑。他們是完全不同的實體。 – 2011-06-02 12:38:53