Powershell forloop正在循环,但只有相同的字符串

Powershell forloop正在循环,但只有相同的字符串,powershell,for-loop,split,output,Powershell,For Loop,Split,Output,我正在尝试获取几个Windows7单元的安装ID。 这就是我所拥有的。iv'e尝试移动支架,这有助于或使其更糟,取决于我移动支架的位置 我有一个ip地址列表,我希望它输出它的ID和ip,它这样做,但它只是重复第一个ip地址。我假设这只是一个格式问题,但我想我会寻求帮助 尝试移动数组,不得不摆弄split命令以获得我想要的输出。现在我只需要按ip地址进行ip操作,并输出如图所示的结果 #从文件中读取所有计算机 $computers=获取内容“C:\Users\Administrator\Deskt

我正在尝试获取几个Windows7单元的安装ID。 这就是我所拥有的。iv'e尝试移动支架,这有助于或使其更糟,取决于我移动支架的位置

我有一个ip地址列表,我希望它输出它的ID和ip,它这样做,但它只是重复第一个ip地址。我假设这只是一个格式问题,但我想我会寻求帮助

尝试移动数组,不得不摆弄split命令以获得我想要的输出。现在我只需要按ip地址进行ip操作,并输出如图所示的结果

#从文件中读取所有计算机
$computers=获取内容“C:\Users\Administrator\Desktop\davidscripts\Test\input.txt”
#对文件中的每一行执行一个操作
$result=@(
foreach($计算机中的strComputer){
cscript C:\Windows\System32\slmgr.vbs$strComputer用户名密码/dti
}
)
$result.split(“:”[3,4,6]| Out File-FilePath.\output.txt-Append
没有错误只是不按ip地址进行ip


出于明显的安全原因更改了用户名和密码

$result
包含字符串数组

虽然
$result.split(“:”)
将拆分应用于每个元素(由提供),但它只是连接生成的令牌数组,返回单个平面数组

因此,对平面数组应用索引-
[3,4,6]
-在所有元素中总共只返回3个元素,这不是您的意图

相反,您必须迭代
$result
的元素,并分割每个元素:

$(
  foreach ($line in $result) {
    $line.Split(':')[3, 4, 6]
  }
) | Out-File -LiteralPath .\output.txt