Назад | Перейти на главную страницу

Заполнять объект прямо из XML в Powershell

Я новичок в 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 ...
}