Команда Powershell для установки параметров ведения журнала IIS - PullRequest
9 голосов
/ 07 января 2011

Я создаю сценарий 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

Заранее спасибо

Ответы [ 6 ]

14 голосов
/ 07 января 2011
Import-Module WebAdministration
Set-WebConfigurationProperty "/system.applicationHost/sites/siteDefaults" -name logfile.directory -value $logdir
8 голосов
/ 02 марта 2016

При тестировании ответа из этой темы, переключая опции через IIS Manager и PowerShell, я наткнулся на то, что было скрыто от меня.В диспетчере IIS, выбрав «Редактор конфигурации» и внеся изменения, диспетчер IIS может сгенерировать и отобразить сценарий изменения в C #, JavaScript, AppCmd.exe и PowerShell.Просто выберите параметр «Создать сценарий».

[Auto Generated Scripts for IIS configuration changes]

6 голосов
/ 08 июля 2013

Для изменения конфигурации logFile отдельного веб-сайта исходное сообщение было почти правильным.Вместо New-ItemProperty используйте Set-ItemProperty, например, так ...

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

Для изменения настроек по умолчанию для всего сервера см. Ответ Энди Шнайдера .

Дополнительные сведения о доступных параметрах см. В этой статье IIS.net .

.
4 голосов
/ 14 мая 2013

Это также работает при использовании модуля 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
2 голосов
/ 07 января 2011
[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()
0 голосов
/ 14 февраля 2017

Если вы размещаете несколько сайтов на одном сервере и хотите, чтобы все они записывали в один и тот же файл журнала, процесс будет совершенно другим. Потребовались некоторые поиски, чтобы найти улики здесь и здесь , поэтому я решил оставить описание для кого-то еще с такой необходимостью.

Следующие два оператора объединят журналы для всех ваших сайтов в папку 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...