Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 是否有脚本化的方法来配置失败请求跟踪(FRT)和FRT规则_Powershell_Iis_Iis 8 - Fatal编程技术网

Powershell 是否有脚本化的方法来配置失败请求跟踪(FRT)和FRT规则

Powershell 是否有脚本化的方法来配置失败请求跟踪(FRT)和FRT规则,powershell,iis,iis-8,Powershell,Iis,Iis 8,是否有一种简单的方法可以通过脚本方式配置失败的请求跟踪(FRT)和规则 除了将FRT作为一项功能安装外,我发现的大多数解决方案要么是通过inetmgr控制台手动安装的,要么是以繁琐的XML操作结束的,如下所示: 当然,后者可能是脚本化的,但由于它是IIS的一个相当成熟的功能-我想知道这是否已经包括在内,所以我不需要重新发明轮子来添加/删除FrtRules等…我只需要同样的功能,并看到了这个未回答的问题,然后通过一个只添加状态代码和耗时规则的简单用例为其创建了一个函数,但您可以基于此示例对其进行进

是否有一种简单的方法可以通过脚本方式配置失败的请求跟踪(FRT)和规则

除了将FRT作为一项功能安装外,我发现的大多数解决方案要么是通过
inetmgr
控制台手动安装的,要么是以繁琐的XML操作结束的,如下所示:


当然,后者可能是脚本化的,但由于它是IIS的一个相当成熟的功能-我想知道这是否已经包括在内,所以我不需要重新发明轮子来添加/删除FrtRules等…

我只需要同样的功能,并看到了这个未回答的问题,然后通过一个只添加状态代码和耗时规则的简单用例为其创建了一个函数,但您可以基于此示例对其进行进一步扩展。 注:这是我的初稿,但我想与大家分享

如果情况发生变化,让我在这里粘贴一些示例

步骤1)在站点上启用IIS失败的请求跟踪

$psPath = "IIS:\Sites\$SiteName"
Set-ItemProperty -PsPath $psPath -Name traceFailedRequestsLogging `
        -Value @{
        enabled     = $true
        directory   = "%SystemDrive%\inetpub\logs\FailedReqLogFiles"
        maxLogFiles = 100

}
步骤2)可选地清除现有策略

$pspath = "MACHINE/WEBROOT/APPHOST/$SiteName"
Clear-WebConfiguration "/system.webServer/tracing/traceFailedRequests" -PSPath $pspath
步骤3)使用Add WebConfiguration Property和Set WebConfiguration Property逐个添加属性

Add-WebConfigurationProperty -pspath $pspath `
        -filter "system.webServer/tracing/traceFailedRequests" -name "." -value @{path = "$Path"}

Add-WebConfigurationProperty -pspath $pspath `
        -filter "system.webServer/tracing/traceFailedRequests/add[@path='$Path']/traceAreas" -name "." `
        -value @{provider = 'ASPNET'; areas = 'Infrastructure,Module,Page,AppServices'; verbosity = 'Verbose'}

Set-WebConfigurationProperty -pspath $pspath `
            -filter "system.webServer/tracing/traceFailedRequests/add[@path='$Path']/failureDefinitions" `
-name "statusCodes" -value $FailureStatusCodes

可以通过脚本(例如PowerShell脚本)操纵整个IIS配置系统。但是,似乎并没有FRT相关的cmdlet,所以您需要开发自己的cmdlet。嘿,快速提问。我只想编辑ApplicationHost配置,而不是web.config,您的脚本是否足够,或者是否需要进行一些调整?第2步和第3步似乎很容易使用applicationhost配置,我只是想知道第1步。这将使用Web配置还是ApplicationHost.Config?谢谢第一种方法也是使用applicationHost.config。将编辑该部分感谢GitHub上的代码。它包含一个小错误,其中参数名不是FailureTimeTakenSeconds,而是FailureTimeTaken。我刚刚提交了一个请求,谢谢@buckley的修复!合并