我对 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 ...
}