在 Powershell 中直接从 XML 填充对象

在 Powershell 中直接从 XML 填充对象

我对 PowerShell 还很陌生,所以我不完全确定我想要做的事情的正确术语是什么,但希望描述就足够了。我正在尝试使用 Web 管理模块来设置网站,并在 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?我觉得一定有一种比显式迭代绑定元素更简洁的方法来做到这一点。

或者,我是否应该使用其他方法来执行此操作?我知道 cmdlet New-Website,但使用它似乎并没有使事情变得更容易。

答案1

Get-Content 命令行程序将允许您将 XML 读入变量,然后您可以使用该变量来填充对 new-item 的网站创建调用。

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

进而

foreach( $site in $WebSites.WebSite) { 
  $path=$site.physicalPath
  ..etc 
  New-Item ...
}

相关内容