Powershell命令用于设置IIS日志记录设置

Web*_*ger 9 iis powershell scripting logging iis-7

我正在创建一个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}
Run Code Online (Sandbox Code Playgroud)

如果您在IIS Powershell管理控制台中更改日志文件夹,请告诉我一个示例

提前致谢

And*_*der 14

Import-Module WebAdministration
Set-WebConfigurationProperty "/system.applicationHost/sites/siteDefaults" -name logfile.directory -value $logdir
Run Code Online (Sandbox Code Playgroud)


小智 10

在测试这个线程的答案,通过IIS管理器和PowerShell切换选项时,我偶然发现了一些隐藏在我身上的东西.在IIS管理器中,选择"配置编辑器"并进行更改,允许IIS管理器生成并显示C#,JavaScript,AppCmd.exe和PowerShell中的更改脚本.只需单击"生成脚本"选项即可.

[用于IIS配置更改的自动生成的脚本]


Pau*_*son 7

要更改单个网站的logFile配置,原始帖子几乎是正确的.而不是New-ItemProperty,使用Set-ItemProperty,就像这样......

Set-ItemProperty "IIS:\Sites\$SiteName" -name logFile -value @{directory=$LogPath}
Run Code Online (Sandbox Code Playgroud)

有关更改服务器范围的默认设置,请参阅Andy Schneider的回答.

有关可用选项的详细信息,请参阅此IIS.net文章.


Ted*_*ott 5

这也适用,使用 WebAdministration Module

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
Run Code Online (Sandbox Code Playgroud)


Web*_*ger 2

[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()
Run Code Online (Sandbox Code Playgroud)