Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В предыдущем пошаговом руководстве вы узнали, как управлять контейнерами пространства имен IIS, такими как сайты, пулы приложений, приложения и виртуальные каталоги.
В этом пошаговом руководстве мы будем управлять параметрами конфигурации, которые не предоставляются через пространство имен IIS.
Введение
Существует несколько командлетов, которые позволяют изменять параметры IIS, которые нельзя настроить с помощью пространства имен IIS, т. е. нельзя использовать встроенные командлеты для их изменения. Вместо этого используйте командлеты, предоставленные IIS. В этом пошаговом руководстве используется сайт, приложения и виртуальные каталоги, созданные в предыдущих пошаговом руководстве.
Get-WebConfiguration и Get-WebConfigurationProperty
Get-WebConfiguration и Get-WebConfigurationProperty позволяют получать разделы конфигурации IIS. Они очень похожи на Get-Item и Get-ItemProperty. Где Get-Item* работает только с контейнерами пространств имен (Сайты, приложения, AppPools, VDirs) Get-WebConfiguration* будет работать с любым разделом конфигурации IIS.
Запрос параметров конфигурации
Давайте посмотрим, какие параметры для раздела directoryBrowse включены в созданном ранее приложении DemoApp. Сначала мы перейдем к папке DemoApp, а затем запрашиваем параметры проверки подлинности в этой папке. Вот как это сделать:
PS IIS:\> cd IIS:\Sites\DemoSite\DemoApp
PS IIS:\Sites\DemoSite\DemoApp> dir
Type Name Physical Path
---- ---- -------------
file Default.htm C:\DemoSite\DemoApp\Default.htm
virtualDirectory DemoVirtualDir2 C:\DemoSite\DemoVirtualDir2
В следующем примере мы используем параметр -filter, чтобы указать интересующий раздел конфигурации и параметр -name, чтобы указать, какое свойство мы хотим просмотреть. Если вы хотите просмотреть параметры раздела, который не является текущим расположением, можно использовать свойство -PSPath поверх этого. Ниже приведен пример запроса параметров просмотра каталогов на веб-сайте по умолчанию:
Get-WebConfigurationProperty -filter /system.webServer/directoryBrowse -name enabled -PSPath 'IIS:\Sites\Default Web Site'
ItemXPath : /system.webServer/directoryBrowse
IsInheritedFromDefaultValue : False
IsProtected : False
Name : enabled
TypeName : System.Boolean
Schema : Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema
Value : False
IsExtended : False
Использование Set-WebConfigurationProperty
Изменение параметра выполняется так же просто, как:
Работа с заблокированными разделами
Вот проблема. Разделы проверки подлинности обычно блокируются, т. е. они не могут быть записаны в файл web.config, но их нужно записать в центральный файл applicationhost.config. При использовании команды, указанной выше, для активации WindowsAuthentication произойдет сбой из-за нарушения блокировки.
PS IIS:\Sites\DemoSite\DemoApp> Set-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled -value true
Set-WebConfigurationProperty : This configuration section cannot be used at this path. This happens
when the section is locked at a parent level. Locking is either by default (overrideModeDefault="D
eny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="fa
lse".
At line:1 char:29
+ Set-WebConfigurationProperty <<<< -filter /system.webServer/security/authentication/windowsAuthentication -name enabled -value true
Здесь необходимо использовать параметр -PSPath и -location. Следующая команда включает проверку подлинности Windows для приложения DemoApp. Конфигурация записывается в applicationhost.config однако с помощью тега расположения. Щелкните здесь, чтобы найти дополнительные сведения о блокировке и тегах местоположения.
PS IIS:\Sites\DemoSite\DemoApp> Set-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled -value true -PSPath IIS:\ -location DemoSite/DemoApp
Вам не нужно указывать расположения при запросе конфигурации. Обычная команда Get-WebConfigurationProperty покажет, что параметр включен.
PS IIS:\Sites\DemoSite\DemoApp> Get-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled
True
Get-WebConfiguration против Get-WebConfigurationProperty
Это же относится к Get-Item и Get-ItemProperty в предыдущем примере. «Get-WebConfiguration» получает целый раздел вместо только свойства. Это позволяет хранить раздел в переменную, вносить изменения в свойства раздела и сохранять раздел обратно с помощью Set-WebConfiguration. И вы получаете преимущество завершения команды.
Ниже приведен пример. Не просто копируйте и вставляйте. Изучите свойства раздела windowsAuthentication. Тип $winAuth. и нажмите <клавишу TAB>, чтобы просмотреть доступные свойства и функции.
PS IIS:\Sites\DemoSite\DemoApp> $winAuth = Get-WebConfiguration -filter /system.webServer/security/authentication/windowsAuthentication
PS IIS:\Sites\DemoSite\DemoApp> $winAuth.enabled = $false
PS IIS:\Sites\DemoSite\DemoApp> $winAuth | set-Webconfiguration -filter /system.webServer/security/authentication/windowsAuthentication -PSPath IIS:\ -location "DemoSite/DemoApp"
Add-WebConfiguration
Add-WebConfiguration — это командлет, который вы хотите использовать, если необходимо добавить что-то в коллекцию конфигураций IIS. Обработчики, модули, параметры документа по умолчанию и некоторые другие примеры, в которых службы IIS используют коллекцию для хранения нескольких значений.
Ниже приведен пример добавления нового документа по умолчанию в коллекцию документов DemoApp по умолчанию:
PS IIS:\Sites\DemoSite\DemoApp>Add-WebConfiguration /system.webServer/defaultDocument/files "IIS:\sites\Default Web Site" -at 0 -value
@{value="new-index.html"}
В примере используется дополнительный параметр -at. Это позволяет указать, где в коллекции нужно добавить новое значение. 0 в начале; -1 указывает конец.
Сводка
В этом пошаговом руководстве вы узнали, как использовать предоставленные командлеты для конфигурации веб-сервера IIS. Вы узнали, как запросить параметры конфигурации, как настроить параметры с помощью тегов расположения, как воспользоваться преимуществами завершения командной строки и добавлением записей в коллекции.
В следующем пошаговом руководстве вы узнаете, как выполнить некоторые сложные задачи конфигурации с помощью расширенных функций поставщика IIS, таких как глоббинг и XPath.