我是PowerShell的新手,并且有一个脚本可以在Active Directory中循环搜索某些计算机。我得到了几个变量,然后运行函数来检查WMI和注册表设置等内容。
在控制台中,我的脚本运行良好,并且简单的Write-Host命令可以根据需要在屏幕上打印数据。我在使用管道时了解Export-Csv ...但是我不希望从管道中进行打印。
我想将变量写入文本文件,继续循环,并检查AD中的下一台计算机...在下一行输出相同变量的下一个迭代。这是我的写主机:
Write-Host ($computer)","($Speed)","($Regcheck)","($OU)
输出文件:
$computer,$Speed,$Regcheck | out-file -filepath C:\temp\scripts\pshell\dump.txt -append -width 200
它给了我数据,但是每个变量都在自己的行上。为什么?我想用逗号分隔一行中的所有变量。有没有一种类似于VB writeline的简单方法?我的PowerShell版本似乎是2.0。
我通常在这些循环中构造自定义对象,然后将这些对象添加到可以轻松操作,排序,导出为CSV等的数组中:
# Construct an out-array to use for data export
$OutArray = @()
# The computer loop you already have
foreach ($server in $serverlist)
{
# Construct an object
$myobj = "" | Select "computer", "Speed", "Regcheck"
# Fill the object
$myobj.computer = $computer
$myobj.speed = $speed
$myobj.regcheck = $regcheck
# Add the object to the out-array
$outarray += $myobj
# Wipe the object just to be sure
$myobj = $null
}
# After the loop, export the array to CSV
$outarray | export-csv "somefile.csv"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句