Я новичок в PowerShell, поэтому не совсем уверен в правильности терминологии для того, что я хочу делать, но, надеюсь, описания будет достаточно. Я пытаюсь использовать модуль веб-администрирования для настройки веб-сайтов с конфигурацией в файле XML.
Раздел конфигурации сайта выглядит так:
<WebSite name="Test" destination="WebServers">
<physicalPath>c:\temp</physicalPath>
<bindings>
<binding protocol="http" bindingInformation=":8081:"/>
<binding protocol="https" bindingInformation=":8082:"/>
</bindings>
</WebSite>
Я загрузил это в переменную [xml] и могу перемещаться по ней.
Я знаю, что могу создать веб-сайт примерно так:
New-Item <SiteName> -bindings (@{protocol="http";bindingInformation="*:80:DemoSite1"},@{protocol="http";bindingInformation="*:80:DemoSite2"}) -PhysicalPath <PhysicalPath>
Есть ли простой (однострочный), который я могу использовать, чтобы превратить привязки в XML во что-то, что я могу передать bindings
параметр New-Item
? Я чувствую, что должен быть более лаконичный способ сделать это, чем явный итерация по элементам привязки.
В качестве альтернативы, есть ли какой-то совершенно другой метод, который я должен использовать для этого? Я знаю о New-Website
командлет, но его использование не делает ничего проще.
Командлет Get-Content позволит вам считывать XML в переменную, которую затем можно использовать для заполнения вызова создания веб-сайта для нового элемента.
[xml]$WebSites = Get-Content WebSites.xml
а потом
foreach( $site in $WebSites.WebSite) {
$path=$site.physicalPath
..etc
New-Item ...
}