我将用户名和密码存储在加密密码的.xml文件中。当我尝试添加另一个用户名和密码时,它会覆盖第一个用户名和密码。如何附加现有文件?
$username = "user"
$password = "password1" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString
$cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $username,($password | ConvertTo-SecureString)
$cred | Export-Clixml C:\file.xml
我很难理解所提供的答案。我尝试过几个不同的值,我应该用什么代替Node? p>
<Objs Version="1.1.0.1"xmlns="http://schemas.microsoft.com/powershell/2004/04">
<Obj RefId="0">
<TN RefId="0">
<T>System.Management.Automation.PSCredential</T>
<T>System.Object</T>
</TN>
<ToString>System.Management.Automation.PSCredential</ToString>
<Props>
<S N="UserName">Tom</S>
<SS N="Password">01000000d08c9ddf0115d1118c7a00c04fc297eb01000000fbc3e29e463de248a4643396e70cd6670000000002000000000003660000c0000000100000005f32bf40a436abd21b2855a28a7930f10000000004800000a000000010000000f4d23943a843968368a273547091233b1800000061921de936aa6f7952ef38c53de64f22dcad44e75836a01514000000d50a8b31c7c3a242e82f3c8c1c1105f1431f2a01</SS>
</Props>
</Obj>
</Objs>
答案 0 :(得分:0)
每次执行时,您的代码都会覆盖XML文件。
要修改XML文件中的特定元素,您可以将其检索并将其强制转换为[xml]
数据类型,然后使用好的文件修改其属性。点符号,然后再次导出文件。
例如:
[xml]$doc = get-content C:\file.xml
$doc.Node = "new value" # where "Node" is an element within your XML structure
$doc.OuterXml > C:\file.xml
同样,您可以根据需要将新节点添加到XML文档中。
[xml]$doc = "<Nodes><Node>1</Node></Nodes>"
$newNode = $doc.CreateElement("Node")
$newNode.InnerXml = 2
$doc.Nodes.AppendChild($newNode)
# $doc.OuterXml is now <Nodes><Node>1</Node><Node>2</Node></Nodes>