我正在创建一个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管理控制台中的日志记录文件夹
提前致谢
答案 0 :(得分:14)
Import-Module WebAdministration
Set-WebConfigurationProperty "/system.applicationHost/sites/siteDefaults" -name logfile.directory -value $logdir
答案 1 :(得分:8)
在测试这个帖子的答案时,通过IIS管理器和PowerShell切换选项,我偶然发现了一些隐藏在我身上的东西。在IIS管理器中,选择“配置编辑器”并进行更改,允许IIS管理器生成并显示C#,JavaScript,AppCmd.exe和PowerShell中的更改脚本。只需单击Generate Script选项。
[]
答案 2 :(得分:6)
要更改单个网站的logFile配置,原始帖子几乎是正确的。而不是New-ItemProperty,使用Set-ItemProperty,就像这样......
Set-ItemProperty "IIS:\Sites\$SiteName" -name logFile -value @{directory=$LogPath}
要更改服务器范围的默认设置,请参阅Andy Schneider's answer。
有关可用选项的详细信息,请参阅this IIS.net article。
答案 3 :(得分:4)
这也适用于使用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
答案 4 :(得分: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()
答案 5 :(得分:0)
如果您在一台服务器上托管多个站点并希望它们都记录到同一个日志文件,则该过程就完全不同了。我需要花一些时间来寻找线索here和here,所以我想我会为其他有此需求的人留下描述。
以下两个语句会将您所有网站的日志合并到一个文件夹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'