我正在尝试编写一个脚本,以便在将来轻松地自定义我的MDT服务器/部署。
$xml = New-Object System.Xml.XmlDocument
$xml.Load($filePath)
$xml.unattend.settings.component.UserData.FullName = "MYUSER"
$xml.unattend.settings.component.UserAccounts.AdministratorPassword.Value = "Password"
Write-Verbose $xml.OuterXml
$xml.Save($filePath)这就是我这么多年来拼凑起来的代码。我正在使用来自https://virtualfeller.com/unattend-xml-windows-10/的示例XML文件进行调试。
AdministratorPassword>Value节点正在被更改,没有问题,但是FullName节点抛出了一个“对象找不到错误”。
有趣的是,如果我使用生产中使用的XML副本,就连“路径”都是相同的,也找不到节点。
我对Powershell脚本非常陌生,所以我不确定是否或如何使用这里解释的路径表达式,https://www.w3schools.com/xml/xpath_syntax.asp
我尝试过索引设置和组件,如这里所描述的here,遗憾的是,没有成功。
预先感谢您的帮助
发布于 2022-04-07 10:04:51
XML有多个设置,每个设置都有多个组件。
因此,您需要找到访问正确数据的正确索引。以您的示例为例,您需要修改FullName,它位于第一个设置中的第二个组件中的UserData中:
$xml.unattend.settings[0].component[1].UserData.FullName = "MYUSER"最安全的方法是使用Xpath,但是由于该文件中有不同的名称空间,所以可能会更难一些!(请查看这个答案以获得示例:PowerShell XML SelectNodes fails to process XPath )
https://stackoverflow.com/questions/71779590
复制相似问题