使用PowerShell启用IIS日志记录

3
我有一个安装了iis 7的Windows 2008 R2服务器。
我创建了一个脚本,用于启用特定网站的iis日志记录。
我可以更改以下参数:
$logdir = "E:\IISLog"
$logFormat = "W3C"
$logEncoding = "UTF-8"
$period = "Weekly"
$truncateSize = "20971520"
$logExtFileFlags =  "Date,Time,ClientIP,UserName,ServerIP,Method,UriStem,UriQuery,HttpStatus,Win32Status,TimeTaken,ServerPort,UserAgent,HttpSubStatus,Host,ComputerName"

Set-ItemProperty "IIS:\Sites\$webSiteToEnableLogs" -name logFile -value @{directory=$logdir}
                Set-ItemProperty "IIS:\Sites\$webSiteToEnableLogs" -name logFile -value @{format=$logFormat}
                Set-ItemProperty "IIS:\Sites\$webSiteToEnableLogs" -name logFile -value @{encoding=$logEncoding}
                Set-ItemProperty "IIS:\Sites\$webSiteToEnableLogs" -name logFile -value @{period=$period}
                Set-ItemProperty "IIS:\Sites\$webSiteToEnableLogs" -name logFile -value @{truncateSize=$truncateSize}
                Set-ItemProperty "IIS:\Sites\$webSiteToEnableLogs" -name logFile -value @{logExtFileFlags=$logExtFileFlags}
                Set-ItemProperty "IIS:\Sites\$webSiteToEnableLogs" -name logFile -value @{enabled="True"}

我也尝试将其更改为$true,但仍然无法正常工作。
Set-ItemProperty "IIS:\Sites\$webSiteToEnableLogs" -name logFile -value @{enabled=$true}

当我检查iis管理控制台(UI)时,我发现日志记录未启用,尽管我已将“enabled”的值更改为“True”。

检查命令:

(GI IIS:\Sites\$webSiteToEnableLogs).logfile

输出:

logExtFileFlags      : Date,Time,ClientIP,UserName,ComputerName,ServerIP,Method,UriStem,UriQuery,HttpStatus,Win32Status,TimeTaken,ServerPort,UserAgent,Host,HttpSubStatus
customLogPluginClsid : 
logFormat            : W3C
directory            : E:\IISLog
period               : Weekly
truncateSize         : 20971520
localTimeRollover    : False
enabled              : True
PSComputerName       : #################
RunspaceId           : #######-#######-##########-#######
Attributes           : {Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute, Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute, Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute, Mi
                       crosoft.IIs.PowerShell.Framework.ConfigurationAttribute...}
ChildElements        : {}
ElementTagName       : logFile
Methods              : 
Schema               : Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema

所有其他参数(例如:日志目录)已成功更改,但IIS未启用。
我有什么遗漏吗?

1
可能是Powershell命令设置IIS日志记录设置的重复问题。 - Eris
1
你需要使用 $true 而不是 "True" 吗?我以前从未这样做过,也没有看到你在 Set-ItemProperty 中使用的哈希表语法,但这可能是你可以尝试的一件事。另外,IIS 需要重新启动吗?这可能是一个可能性。 - PSGuy
我没有复制..问题是关于更改目录的。对我来说,更改目录是有效的,但启用iis不起作用。此外,我尝试了$true,仍然不起作用。 - dsaydon
你能展示一下你尝试使用$true的方式吗?你在问题中的写法是错误的,我也确定这是你的问题。@{enabled=$true} - Matt
我在帖子中添加了输出和 enabled=$true 命令。 - dsaydon
1
所以$true没有起作用,我也尝试重新启动iis,但仍然无法工作。顺便说一下 - 从IIS管理控制台(UI)中,您不需要重新启动iis。 - dsaydon
1个回答

3

在powershell中运行:

C:\windows\system32\inetsrv\appcmd 解锁配置 -section:system.webServer/httplogging

set-WebConfigurationProperty -PSPath "IIS:\Sites\$webSiteToEnableLogs" -filter "system.webServer/httpLogging" -name dontLog -value $false

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接