目前我正在写一小块的代码来获得在远程系统上的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