将广告信息导出到列

时间:2015-05-11 15:51:17

标签: powershell server powershell-v3.0

我正在尝试获取一个驱动器号列表,以便在整个页面上发布到CSV而不是

EX:
systemname,Drive1,Drive2,Drive3,Drive4,Drive5

SVR,C:,D:,E:,F:

systemname,deviceid
SVR,C:
SVR,D:
SVR,E:
SVR,F:

我放在一起的代码以及之前用于其他项目的代码是

Get-WmiObject win32_logicaldisk -filter "drivetype = '3'" -computername $serverlist[$j] | Select systemname, deviceid

现在还有更多来获取文件中的计算机,并检查以确保它在线,但这是我认为必须有一种方法来实现它,我只是可以'想通了。任何想法?

谢谢, 路加

完整代码

# Loop only executed when ping is successful
    if (test-connection -computername $serverlist[$j] -count 1 -quiet)
    {
        $results = Get-WmiObject win32_logicaldisk -filter "drivetype = '3'" -computername $serverlist[$j]
        "{0},{1}" -f $serverlist[$j], $results.deviceid -join "," | Add-Content c:\scripts\file.csv
        for ($k = 0; $k -lt $tempvar.count; $k++)
        {
            $tempoutput = $tempvar[$k]

            # Setup line to be written to file

            $exporttofile = $tempoutput.systemname + "," + $tempoutput.deviceid

            # Write to log, UTF8 encoding for .csv
            $exporttofile | out-file $logfile -append -encoding utf8
        }
    }

1 个答案:

答案 0 :(得分:0)

除非此代码还有更多内容,否则简单的答案似乎只是将-joinAdd-Content之类的内容结合使用来设置该行。显然你在某种循环结构中有这个,这里不应该受到影响。

$results = Get-WmiObject win32_logicaldisk -filter "drivetype = '3'" -computername $serverlist[$j]
"{0},{1}" -f $serverlist[$j],($results.deviceid -join ",") | Add-Content c:\temp\file.csv

使用格式运算符,我们使用服务器名称构建一行,并附加驱动器ID的逗号分隔字符串