[英]Powershell command to set IIS logging settings
我正在創建一個powershell腳本,因此我可以使用IIS Powershell管理控制台使用單個命令創建網站托管。
我有創建IIS站點所需的命令,並為域名添加綁定等...
我缺少的一個難題是如何將默認的日志目錄從%SystemDrive%\\ inetpub \\ logs \\ LogFiles更改為我自己的文件夾,該文件夾不在服務器的啟動驅動器上。
經過廣泛的搜索后,我希望找到一個沿着以下偽powershell的命令
New-ItemProperty IIS:\Sites\MyNewSite -name logging -value @{format='W3C';directory='d:\sites\site\logs';encoding=UTF-8}
如果您在IIS Powershell管理控制台中更改日志文件夾,請告訴我一個示例
提前致謝
Import-Module WebAdministration
Set-WebConfigurationProperty "/system.applicationHost/sites/siteDefaults" -name logfile.directory -value $logdir
在測試這個線程的答案,通過IIS管理器和PowerShell切換選項時,我偶然發現了一些隱藏在我身上的東西。 在IIS管理器中,選擇“配置編輯器”並進行更改,允許IIS管理器生成並顯示C#,JavaScript,AppCmd.exe和PowerShell中的更改腳本。 只需單擊“生成腳本”選項即可。
[ ]
要更改單個網站的logFile配置,原始帖子幾乎是正確的。 而不是New-ItemProperty,使用Set-ItemProperty,就像這樣......
Set-ItemProperty "IIS:\Sites\$SiteName" -name logFile -value @{directory=$LogPath}
有關更改服務器范圍的默認設置,請參閱Andy Schneider的回答 。
有關可用選項的詳細信息,請參閱此IIS.net文章 。
這也可以使用WebAdministration模塊
Import-Module WebAdministration
$site = gi IIS:\Sites\MyNewSite
$site.Logging.format='W3C'
$site.Logging.directory='d:\sites\site\logs'
$site.Logging.encoding=UTF-8
$site | set-item
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
$iis = new-object Microsoft.Web.Administration.ServerManager
$web = $iis.Sites["test"]
#set new logpath, must be existing
$web.LogFile.Directory = "F:\Logfiles\"
$iis.CommitChanges()
如果您在單個服務器上托管多個站點並希望它們都記錄到同一個日志文件,則該過程完全不同。 在這里和這里花了一些挖掘才能找到線索,所以我想我會為其他有這種需要的人留下描述。
以下兩個語句將所有網站的日志合並到一個文件夾e:\\ log \\ w3svc中。
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter 'system.applicationHost/log' -name CentralLogFileMode -Value 'CentralW3C'
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter 'system.applicationHost/log' -name centralW3CLogFile.directory -value 'e:\log'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.