首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell抛出财产‘.’在尝试编辑unattended.xml时,无法在此对象上找到

Powershell抛出财产‘.’在尝试编辑unattended.xml时,无法在此对象上找到
EN

Stack Overflow用户
提问于 2022-04-07 09:26:09
回答 1查看 267关注 0票数 0

我正在尝试编写一个脚本,以便在将来轻松地自定义我的MDT服务器/部署。

代码语言:javascript
复制
$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,遗憾的是,没有成功。

预先感谢您的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-07 10:04:51

XML有多个设置,每个设置都有多个组件。

因此,您需要找到访问正确数据的正确索引。以您的示例为例,您需要修改FullName,它位于第一个设置中的第二个组件中的UserData中:

代码语言:javascript
复制
$xml.unattend.settings[0].component[1].UserData.FullName = "MYUSER"

最安全的方法是使用Xpath,但是由于该文件中有不同的名称空间,所以可能会更难一些!(请查看这个答案以获得示例:PowerShell XML SelectNodes fails to process XPath )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71779590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档