You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何查找IIS应用的MACHINE/WEBROOT/APPHOST位置及对应网站名称?

如何获取IIS网站名称及确认MACHINE/WEBROOT/APPHOST路径(针对PowerShell IIS审计脚本)

刚接触IIS就着手写安全审计脚本,挺棒的!我来帮你解决这两个关键问题:

一、查找命令中的<IIS网站名称>

有两种简单的方法可以获取你需要的网站名称:

  • PowerShell命令行方式:直接运行Get-IISSite,这个命令会列出服务器上所有IIS网站的详细信息,包括Name(就是你要填的<website name>)、State(运行状态)、PhysicalPath(物理路径)等。比如默认安装的IIS网站名称通常是Default Web Site
  • 图形界面方式:打开IIS管理器,在左侧的「连接」面板里展开「网站」节点,下面显示的每个名称就是对应的网站名,直接复制即可。

二、关于MACHINE/WEBROOT/APPHOST路径

首先要明确:这个路径不是文件系统里的实际文件夹,而是IIS配置系统中的元数据库路径(metabase path),用来定位网站的配置节点:

  • MACHINE/WEBROOT/APPHOST是固定的前缀,代表IIS全局的网站配置容器,后面拼接网站名称就能精准定位到单个网站的配置项。
  • 如果要找这个路径对应的实际配置文件存储位置,它指向的是C:\Windows\System32\inetsrv\config\applicationHost.config——这是IIS的核心配置文件,所有网站的设置都保存在这里。
  • 你可以用Get-WebConfiguration -pspath 'MACHINE/WEBROOT/APPHOST'命令验证这个路径的有效性,运行后会返回所有网站的配置根节点。

额外实用技巧(针对你的安全审计脚本)

如果需要批量审计所有网站的Forms保护设置,可以用下面的脚本片段自动遍历所有网站:

# 获取所有IIS网站的名称列表
$allSiteNames = Get-IISSite | Select-Object -ExpandProperty Name

# 循环检查每个网站的Forms protection配置
foreach ($siteName in $allSiteNames) {
    try {
        $protectionValue = Get-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST/$siteName" `
            -filter 'system.web/authentication/forms' -name 'protection'
        Write-Host "✅ 网站 [$siteName] 的Forms保护设置: $protectionValue"
    } catch {
        Write-Warning "⚠️ 网站 [$siteName] 未配置Forms认证或读取失败: $_"
    }
}

内容的提问来源于stack exchange,提问作者Jesse_Pinkman

火山引擎 最新活动