【问题标题】:IIS Advanced Logging - Scripting Out Filters via PowershellIIS 高级日志记录 - 通过 Powershell 编写过滤器脚本
【发布时间】:2015-03-09 21:39:53
【问题描述】:

我已经通过 powershell 编写了大部分 IIS 高级日志记录设置的脚本。

目标

我想自动化根服务器 logDefinition 的 <filters> 部分。我已经尝试了多个命令,似乎没有一个工作。

最终,system.webServer/advancedLogging/server/logDefinitions/logDefinition[@baseFileName='%COMPUTERNAME%-Server'] 部分应该有一些像这样的 XML:

<filter>
    <condition operator="And">
        <condition operator="And">
            <expression field="URI-Stem" operator="NotEquals" value="/serverstatuscheck" caseSensitive="false" regularExpression="false" />
        </condition>
    </condition>
</filter>

尝试 1

我在 powershell 中尝试了以下 2 个命令 - 它们没有给我任何错误,但也没有任何效果:

Add-WebConfiguration -Filter "system.webServer/advancedLogging/server/logDefinitions/logDefinition[@baseFileName='%COMPUTERNAME%-Server']/filter" -Value @{operator='And'}

Add-WebConfiguration -Filter "system.webServer/advancedLogging/server/logDefinitions/logDefinition[@baseFileName='%COMPUTERNAME%-Server']/filter" -Value @{elementTagName="condition";operator='And'}

然后我尝试了以下命令,得到了错误 Add-WebConfiguration : Key value is missing.(虽然我不确定它在寻找哪个键):

Add-WebConfiguration -Filter "system.webServer/advancedLogging/server/logDefinitions/logDefinition[@baseFileName='%COMPUTERNAME%-Server']/filter/condition" -Value @{operator='And'}

尝试 2

我的下一个尝试是使用Configuration Editor 生成脚本。因此,我进行了更改,单击 Generate Script 并拉出它生成的 Powershell。看起来是这样的:

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST'  -filter "system.webServer/advancedLogging/server/logDefinitions/logDefinition[@baseFileName='%COMPUTERNAME%-Server']/filter/condition" -name "." -value @{}

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST'  -filter "system.webServer/advancedLogging/server/logDefinitions/logDefinition[@baseFileName='%COMPUTERNAME%-Server']/filter/condition/condition[]" -name "." -value @{field='URI-Stem';operator='NotEquals';value='/serverstatuscheck'}

但这也没有用。我得到了相同的 Add-WebConfiguration : Key value is missing. 错误如上。

我的问题

谁能把我推向正确的方向?我觉得我很接近,但一直在撞墙。我可以手动配置这个就好了。

提前感谢您的帮助!

【问题讨论】:

    标签: powershell iis iis-advanced-logging


    【解决方案1】:

    多次尝试后,试试这个:

    Add-WebConfigurationProperty -Filter "/system.webServer/advancedLogging/server/logDefinitions/logDefinition[@baseFileName='%COMPUTERNAME%-Server']/filter/condition" -name "." -value @{field='URI-Stem';operator='NotEquals';value='/serverstatuscheck'}
    

    【讨论】:

    • 谢谢!这行得通,启用 reg exp 的参数是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2012-06-06
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    相关资源
    最近更新 更多