【问题标题】:How to view all properties of an IIS site (ADSI Object)?如何查看 IIS 站点(ADSI 对象)的所有属性?
【发布时间】:2019-07-31 05:15:51
【问题描述】:

在将其发布到此处之前,我已经为此做了很多背景工作。我想使用它们的 Active Directory 服务接口 (ADSI) 对象发现在机器中运行的所有 IIS 站点。到目前为止,我已经找到了发现这些的编程方法。

  • 在c++我们可以使用com接口方法ADsOpenObject得到 对象属性。
  • 在c# 中我们也可以这样做,但我在获取 dll 工作。
  • 在js我们可以使用这个script来实现相同的,但是有 获得所有属性的一些限制(例如,处理 安全数组)

有没有办法在 GUI 中查看 ADSI 对象的所有属性,或者像浏览器一样可以列出找到的所有 IIS 站点对象?或者一个合适的脚本/sn-p/cmdlet 可以达到同样的效果?

【问题讨论】:

    标签: iis active-directory adsi


    【解决方案1】:

    我刚刚在 C# 中尝试过,非常简单。无需使用 ADSI。但是,是的,如果您不使用 .NET Core,那么让 DLL 引用正常工作可能会很棘手。有很多答案here,但最简单的方法是手动编辑您的 .csproj 文件,并将其与您的其他引用一起添加(在<ItemGroup> 标记内):

    <Reference Include="Microsoft.Web.Administration">
        <HintPath>%windir%\System32\inetsrv\Microsoft.Web.Administration.dll</HintPath>
        <SpecificVersion>False</SpecificVersion>
    </Reference>
    

    您确实需要确保已安装 IIS 管理控制台,正如 this answer 的第一部分所述。

    在 .NET Core 中,您只需安装 Microsoft.Web.Administration NuGet 包即可。

    然后您可以这样做以列出本地机器上 IIS 中的所有站点:

    using (var serverManager = new ServerManager()) {
        foreach (var site in serverManager.Sites) {
            Console.WriteLine(site.Name);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      相关资源
      最近更新 更多