powershell - IIS 高级日志记录 - 通过 Powershell 编写过滤器脚本

标签 powershell iis

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

目标

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

最终,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生成脚本。所以我去进行更改,点击生成脚本并拉出它生成的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 :缺少键值。错误如上。

我的问题

任何人都可以将我推向正确的方向吗?我觉得我很接近,但一直在撞墙。我可以手动配置这个就好了。

提前感谢您的帮助!

最佳答案

经过多次尝试,试试这个:

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

关于powershell - IIS 高级日志记录 - 通过 Powershell 编写过滤器脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28550448/

相关文章:

powershell - 移动具有相同名称但扩展名不同的文件。电源外壳

asp.net - ASP.NET MVC问题与表单例份验证部分的配置

asp.net - IIS7 URL 重写出站规则

url - 错误状态: URL contains outer http

python - Powershell语法错误(python 2.7)

azure - 如何使用 Azure DevOps Server 2019(本地)中的 Azure 服务连接从发布阶段运行的脚本运行 terraform?

windows - GetScheduled-Job 不返回任何工作