我正在尝试编写一个powershell脚本,它将接收一个文本文件(或xml文件或我想要的任何内容),并在该服务器上停止使用servername和某些服务名称列表。我可以让powershell从文本文件中读取一行,但是我无法弄清楚如何让powershell将数据导入单独的变量,以便传递给其他函数。如果这是arguemnts它似乎微不足道,但必须有一个简单的方法来做到这一点,而不是我在每一行使用正则表达式。
答案 0 :(得分:6)
考虑下面的XML:
$xml = [xml]@"
<Servers>
<Server name="SERVER1">
<Process>Process1</Process>
<Process>Process2</Process>
</Server>
<Server name="SERVER2">
<Process>Process3</Process>
</Server>
</Servers>
"@
您可以像这样处理$xml
变量:
foreach ($server in $xml.Servers.Server) {
foreach ($process in $server.Process) {
# Execute your kill script here.
}
}
对于远程计算机上的kill脚本,您可以使用Invoke-Script cmdlet(需要启用PSRemoting),或者PsExec或WMI,无论您最熟悉哪个。将需要$server
和$process
个变量来对正确服务器上的正确进程执行kill。