如何通过命令行检查IIS日志记录状态
查看IIS日志记录状态的CMD/PowerShell方法
我刚好摸索出两种靠谱的方法,能通过命令行快速查看IIS站点的日志记录是启用还是禁用状态,分享给你:
使用PowerShell操作
PowerShell有专门的WebAdministration模块来管理IIS,步骤很简单:
- 先导入IIS管理模块(如果没自动加载的话):
Import-Module WebAdministration - 查看所有站点的日志状态:
这条命令会列出所有站点名称,以及对应的日志启用状态:Get-ChildItem IIS:\Sites | Select-Object Name, @{Name='LoggingEnabled'; Expression={$_.logFile.enabled}} - 查看单个特定站点:
比如要查默认站点的状态,把站点名称替换成你需要的即可:Get-Item IIS:\Sites\DefaultWebSite | Select-Object Name, @{Name='LoggingEnabled'; Expression={$_.logFile.enabled}} - 查看服务器级别的默认日志设置:
如果想知道站点继承的全局默认日志状态,可以用:
输出里的Get-Item IIS:\Config\system.webServer\logging | Select-Object enabledenabled字段显示True就是启用,False就是禁用。
使用CMD(借助appcmd)操作
CMD里可以用IIS自带的appcmd工具,它默认在C:\Windows\System32\inetsrv目录下,直接调用即可:
- 查看所有站点的日志状态:
注意:这条命令会按站点顺序返回每个站点的日志状态(True/False),你可以对应之前的站点列表来匹配。%windir%\system32\inetsrv\appcmd list sites /config:* /xml | %windir%\system32\inetsrv\appcmd list config /in /section:system.webServer/logging /text:enabled - 查看单个特定站点:
比如查看默认站点,把站点名称用引号括起来:%windir%\system32\inetsrv\appcmd list config "Default Web Site" /section:system.webServer/logging /text:enabled - 查看服务器级别的默认日志设置:
%windir%\system32\inetsrv\appcmd list config /section:system.webServer/logging /text:enabled
小提示:如果遇到权限问题,试试用管理员身份打开CMD/PowerShell,大部分情况下普通权限就能查看,但某些受保护的站点可能需要管理员权限哦。
内容的提问来源于stack exchange,提问作者Help
相关产品推荐
相关产品推荐

