【问题标题】:Get IIS settings (located in web.config) from remote server using WMI or other secure methods使用 WMI 或其他安全方法从远程服务器获取 IIS 设置(位于 web.config 中)
【发布时间】:2015-03-09 17:29:46
【问题描述】:

我正在尝试以编程方式从 remote 服务器(Win 2k8/IIS7 或 Win2k12/IIS8)读取(并且仅读取)各种 IIS 设置。 尝试过但最终放弃了 Microsoft.Web.Administration 和 WebConfigurationManager 方法,因为它们需要一定的安全“灵活性”,这对我来说是不可行的。

我发现 WMI 模拟功能是最合适的,并且我能够获取驻留在 ApplicationHost.config 文件中的设置。

到目前为止,我还没有找到一种方法来使用 WMI 从虚拟目录级别的 web.config 文件中读取。 目前我正在阅读身份验证设置 - “模式”,以及该模式的各种属性。

为了说明,这是我感兴趣的 web.config 文件的一部分(表单身份验证的示例):

<configuration> <system.web> <authentication mode="Forms"> <forms loginUrl="~/Login.aspx" name=".ASPXAUTH" timeout="360" /> </authentication> <system.webServer> </configuration>

有没有办法使用 WMI 访问这些数据? 或者你能想出另一种(安全的)方法来实现这个目标吗?

感谢您的帮助!

EDIT 找到了正确的命名空间并将其发布在答案中

【问题讨论】:

    标签: c# iis web-config wmi


    【解决方案1】:

    WMI 不提供任何类来读取文件的内容....但对于您的特定情况,您可以查看 IIS WMI Provider 参考并尝试类似 IIsWebFileSetting 类的方法。

    【讨论】:

    • 也许我应该换个说法。我知道 WMI 不读取文件的内容。我只是在 IIS WMI 提供程序中找不到对我正在寻找的设置的引用(专门在 web.config 而不是 applictaionHost.config 中找到)。不过,我会检查 IISWebFileSetting 类,谢谢
    【解决方案2】:

    原来我使用了错误的 WMI 命名空间 (MicrosoftIISv2)。 我应该一直使用的命名空间是 WebAdministration。它可以访问我正在寻找的属性(特别是与表单身份验证相关的属性)。更多信息在这里 - http://wutils.com/wmi/root/webadministration

    我现在面临另一个问题,我可以在一台机器上连接到此命名空间并查询数据,但不能在另一台(看似相同的)机器上连接。 不过,我猜这是另一个问题的主题。

    【讨论】:

      猜你喜欢
      • 2015-10-31
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多