如何查看 IIS 站点(ADSI 对象)的所有属性?

How to view all properties of an IIS site (ADSI Object)?

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

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

我刚刚在 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);
    }
}