目前我正在编写一小段代码来获取远程系统中IIS上托管的Web服务列表,
现在的工作代码是:
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,那么有没有其他方法可以访问上述代码所获得的信息?
答案 0 :(得分:1)
答案 1 :(得分:0)
我已将此文件从VB.Net转换为C#,因此可能不完全正确,但这可以满足您的需求:
public List<string> GetSites(string MachineName)
{
List<string> siteList = new List<string>();
DirectoryEntry iis = new DirectoryEntry(string.Format("IIS://{0}/w3svc/1/root", MachineName));
foreach (DirectoryEntry site in iis.Children) {
if (site.SchemaClassName == "IIsWebServer") {
siteList.Add(site.Properties("ServerComment").Value.ToString());
}
}
return siteList;
}