如何编写PowerShell脚本根据CSV数据修改XML文件中对应账户的密码
PowerShell批量更新XML账号密码实现方案
实现逻辑
- 导入分号分隔的CSV账号密码映射表
- 解析XML文件为可操作的DOM对象
- 遍历CSV记录匹配对应XML账号节点,替换密码值
- 保存修改后的XML文件
完整可运行脚本
# 配置文件路径,替换为你本地的实际路径 $csvFilePath = "C:\path\to\your\accounts.csv" $xmlFilePath = "C:\path\to\your\config.xml" # 导入CSV,指定分隔符为分号 $accountMaps = Import-Csv -Path $csvFilePath -Delimiter ';' # 加载并解析XML文件 [xml]$xmlConfig = Get-Content -Path $xmlFilePath -Encoding UTF8 # 遍历所有CSV账号记录 foreach ($item in $accountMaps) { # 查找Login值匹配当前CSV账号的Account节点 $matchedAccount = $xmlConfig.SelectSingleNode("//Account[Login='$($item.AccountName)']") if ($matchedAccount) { # 替换Password节点内容 $matchedAccount.Password = $item.Password Write-Host "成功更新账号:$($item.AccountName)" } else { Write-Warning "未找到匹配账号,跳过:$($item.AccountName)" } } # 保存修改后的XML $xmlConfig.Save($xmlFilePath)
注意事项
- 测试时可将最后的保存路径改为新的文件名,避免覆盖原文件导致数据丢失
- 若XML使用非UTF8编码,可调整
Get-Content的-Encoding参数适配 - 若账号名包含单引号等特殊字符,需先对XPath查询值做转义处理
内容的提问来源于stack exchange,提问作者Nodah
相关产品推荐
相关产品推荐

