2011-01-07 57 views
9

我創建了一個powershell腳本,因此我可以使用IIS Powershell管理控制檯使用單個命令創建網站託管。Powershell命令設置IIS日誌記錄設置

我有我需要創建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的管理更改日誌文件夾控制檯

爲例

在此先感謝

回答

1
[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() 
13
Import-Module WebAdministration 
Set-WebConfigurationProperty "/system.applicationHost/sites/siteDefaults" -name logfile.directory -value $logdir 
+0

謝謝。這完全適用於更改默認位置。我爲每個網站都有單獨的文件夾,但我並不清楚在我的問題中。您的代碼幫助我在此論壇帖子中找到答案http://forums.iis.net/t/1174319.aspx – Webmonger 2011-01-07 20:30:59

+0

如果您在腳本中將其與其他IIS:驅動器活動一起使用。確保IIS:驅動器上的當前文件夾是根目錄。這可以通過「cd IIS:\」來完成。例如,如果您位於IIS:\ SslBindings中,您將收到錯誤「Set-WebConfigurationProperty:沒有爲路徑IIS上的對象定義配置:\ SslBindings。」 – 2016-08-11 16:36:04

4

此作品爲w使用Web管理模塊

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 
+0

這可能適用於較舊的IIS或Web管理版本。然而,現在要使用的網站的屬性是logFile。例如```$ site.logFile。logFormat ='W3C'``` – 2017-10-06 10:49:18

5

要更改單個網站的logFile配置,原始郵件幾乎是正確的。相反,新-ItemProperty的,使用Set-ItemProperty,像這樣......

Set-ItemProperty "IIS:\Sites\$SiteName" -name logFile -value @{directory=$LogPath} 

對於更改服務器範圍的默認設置,請參閱Andy Schneider's answer。請參閱this IIS.net article

+0

小世界......我注意到@ Nathan-hartley的頭像[隔壁標籤中的其他討論](http://powershell.org/wp/forums/topic/iis -log文件維護/)。 DSC聽起來像是所有這類事情的新興方法 – Nathan 2015-01-08 18:41:17

7

從這個線程測試答案時,通過IIS管理器和PowerShell切換選項時,我偶然發現了一些對我隱藏的東西。在IIS管理器中,選擇配置編輯器並進行更改,允許IIS管理器生成並顯示C#,JavaScript,AppCmd.exe和PowerShell中更改的腳本。只需點擊Generate Script選項。

[Auto Generated Scripts for IIS configuration changes]

0

如果主機上的一個服務器上的多個網站,他們希望所有的日誌到同一個日誌文件,這個過程是相當不同的。我們花了一些時間去尋找線索herehere,所以我想我會留下一個描述給任何有這種需求的人。

以下兩條語句將所有網站的日誌組合到一個文件夾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'