有沒有辦法激活IIS中特定網站上的日誌記錄字段,最好是通過PowerShell?激活IIS站點日誌記錄字段[PowerShell]
我想激活'客戶端IP地址'日誌字段,而不需要RDP到機器並手動設置。
我運行Windows Server 2012和IIS 8.5
有沒有辦法激活IIS中特定網站上的日誌記錄字段,最好是通過PowerShell?激活IIS站點日誌記錄字段[PowerShell]
我想激活'客戶端IP地址'日誌字段,而不需要RDP到機器並手動設置。
我運行Windows Server 2012和IIS 8.5
多一點搜索後,我發現了一個基線爲我自己的解決方案爲: Set IIS Log Fields via PowerShell
的激活,LoggingField函數取以網站名稱和日誌字段名稱作爲參數
它通過Get-WebConfigurationProperty獲取提供的網站的活動日誌記錄字段cmdlet並檢查提供的日誌記錄字段是否存在。如果它不存在,它會嘗試通過Set-WebConfigurationProperty cmdlet的
Import-Module Webadministration
Function Activate-LoggingField
{
param([Parameter(Mandatory=$true)][string]$websiteName,
[Parameter(Mandatory=$true)][string]$loggingField)
$loggingFilter = "/system.applicationHost/sites/site[@name=`"$websiteName`"]/LogFile"
$currentLoggingFields = Get-WebConfigurationProperty -Filter $loggingFilter -Name LogExtFileFlags
if ($currentLoggingFields -notmatch $loggingField)
{
$newLoggingFields = "$currentLoggingFields,$loggingField"
Set-WebConfigurationProperty -Filter $loggingFilter -Name LogExtFileFlags -Value $newLoggingFields
}
}
Activate-LoggingField -websiteName "MySite" -loggingField "ClientIP"
您可以通過以下方法,讓你使用需要通過設定爲每標誌的總價值還設置了標誌,將其添加列表如下。
這些值由2設置爲標誌數字的冪。總計你想要打開的所有標誌,並獲得可以設置logExtFileFlags的值。
<flag number= "0" flag name="Date" value="1" />
<flag number= "1" flag name="Time" value="2" />
<flag number= "2" flag name="ClientIP" value="4" />
<flag number= "3" flag name="UserName" value="8" />
<flag number= "4" flag name="SiteName" value="16" />
<flag number= "5" flag name="ComputerName" value="32" />
<flag number= "6" flag name="ServerIP" value="64" />
<flag number= "7" flag name="Method" value="128" />
<flag number= "8" flag name="UriStem" value="256" />
<flag number= "9" flag name="UriQuery" value="512" />
<flag number= "10" flag name="HttpStatus" value="1024" />
<flag number= "11" flag name="Win32Status" value="2048" />
<flag number= "12" flag name="BytesSent" value="4096" />
<flag number= "13" flag name="BytesRecv" value="8192" />
<flag number= "14" flag name="TimeTaken" value="16384" />
<flag number= "15" flag name="ServerPort" value="32768" />
<flag number= "16" flag name="UserAgent" value="65536" />
<flag number= "17" flag name="Cookie" value="131072" />
<flag number= "18" flag name="Referer" value="262144" />
<flag number= "19" flag name="ProtocolVersion" value="524288" />
<flag number= "20" flag name="Host" value="1048576" />
<flag number= "21" flag name="HttpSubStatus" value="2097152" />
E.G. 我們希望打開UserName,ServerIP,ServerPort和Host。 這就要求我們添加8 + 64 + 32768 + 1048576 = 1081416
因此的命令是:
Set-ItemProperty "IIS:\Sites\$siteName" -name LogFile.logExtFileFlags -value 1081416