Preencher o objeto diretamente do XML no Powershell

1

Sou muito novo no PowerShell, por isso não sei muito bem qual é a terminologia correta para o que desejo fazer, mas espero que uma descrição seja suficiente. Estou tentando usar o módulo Web-Administration para configurar sites, com configuração em um arquivo XML.

Uma seção de configuração do website se parece com:

<WebSite name="Test" destination="WebServers">
<physicalPath>c:\temp</physicalPath>
    <bindings>
        <binding protocol="http" bindingInformation=":8081:"/>
        <binding protocol="https" bindingInformation=":8082:"/>
    </bindings>
</WebSite>

Eu carreguei isso em uma variável [xml] e posso atravessá-la.

Eu sei que posso criar um site com algo como:

New-Item <SiteName> -bindings (@{protocol="http";bindingInformation="*:80:DemoSite1"},@{protocol="http";bindingInformation="*:80:DemoSite2"}) -PhysicalPath <PhysicalPath>

Existe um fácil (one-liner) que eu possa usar para transformar as ligações no XML em algo que eu possa passar para o parâmetro bindings de New-Item ? Eu sinto que deve haver uma maneira mais concisa de fazer isso do que explicitamente iterar sobre os elementos de ligação.

Alternativamente, existe algum outro método que eu deveria usar para fazer isso? Eu sei sobre o cmdlet New-Website , mas usá-lo não parece tornar nada mais fácil.

    
por AwesomeTown 13.09.2010 / 20:22

1 resposta

1

O comando Get-Content permite que você leia o XML em uma variável que você pode usar para preencher a chamada de criação de site para novo item.

[xml]$WebSites = Get-Content WebSites.xml

e depois

foreach( $site in $WebSites.WebSite) { 
  $path=$site.physicalPath
  ..etc 
  New-Item ...
}
    
por 13.09.2010 / 20:59