0

你能帮我用下面的代码吗?

[System.Xml.XmlDocument]$xd = New-Object System.Xml.XmlDocument
$file = "C:\PS\SetUP.xml";
$xd.LoadXml($file);
#$root = $xd.DocumentElement 
Write-Host $xd.SelectSingleNode("/Setup").Attributes.GetNamedItem("WebAppUrl").Value

当我在 windows server 2008 中运行此代码时,它可以正常工作,但在 windows server 2003 中它不起作用。

我在同一环境(win server 2003)中在 C# 中对其进行了测试,它可以工作,但在 Powershell 中不行。

我认为可能存在一些 Powershell 版本问题。

请你帮助我好吗?

谢谢


xml文件

<?xml version="1.0" encoding="utf-8"?>
<Setup WebAppUrl="http://sp2007">
    <SiteCollection Name="Report" Url="Report Requests">
    <Lists>
        <List Name="Report Requests" Url="ReportRequests" />    
        <List Name="Report Request Tasks" Url="ReportRequestTasks" />   
    </Lists>
    <Features>
    <Feature>ContentTypeSyndication</Feature>
    </Features>
    <Site Name="Child 1" Url="child1" Template="STS#0"/>
    <Site Name="Child 2" Url="child2" Template="STS#0"/>
    <Site Name="Child 3" Url="child3" Template="STS#0"/>
    </SiteCollection>
</Setup>
4

2 回答 2

0

Windows 2003 上的 Powershell 版本为 1。

Windows 2008 上的版本是 2。

链接:http ://en.wikipedia.org/wiki/Windows_PowerShell#Versions

就那么简单。你可以尝试升级它AFAIK。

编辑:更新程序-> http://maxt2posh.wordpress.com/2009/12/23/update-powershell-v1-to-v2-windows-management-framework/

于 2012-07-27T09:55:20.703 回答
0

我没有 v1,但无论操作系统版本如何,您都可以读取 xml 文件并以相同的方式导航它们。可以分享一下xml文件吗?

[xml]$xd = Get-Content C:\PS\SetUP.xml
$xd.SelectSingleNode("/Setup").WebAppUrl

http://sp2007

如果只有一个设置节点,那么您可以通过以下方式获取值:

$xd.Setup.WebAppUrl
于 2012-07-27T10:09:44.900 回答