[英]Powershell Export-CSV
我正在嘗試從列表中將每台計算機的所有磁盤導出到csv。 我的計算機配置了兩個拖曳的樹形磁盤。 現在,當我將腳本結果導出到csv文件時,我將其格式化為列表格式:
ComputerName, Disk
Comp1, C:
Comp1, D:
Comp2, C:
Comp2, D:
我想知道是否可以將此列表導出為表格? 如果計算機中有多個磁盤,則在表中添加一列,如下所示:
ComputerName, Disk1, Disk2...
Comp1, C:, D:
Comp2, C:, D:
Comp3, C:
更新:
$computers = 'Comp1','Comp2'
$out_csv =@()
foreach ($computer in $computers) {
$disks = Get-WmiObject -Class win32_logicaldisk -ComputerName $computer| select deviceid, volumename
foreach ($disk in $disks) {
$ou = New-Object -TypeName psobject -Property @{
'Computer' = $computer
'drive' = $disk.volumename
'ID' = $disk.deviceid
}
$out_csv += $ou
}
}
$out_csv | Export-Clixml -Path 'C:\Users\Administrator\disk.csv'
丑陋但簡單
$computers = 'Comp1','Comp2'
$out_csv =@()
$computers | ForEach-Object{
$ou = "$_"
Get-WmiObject -Class win32_logicaldisk -ComputerName $_ | ForEach-Object{ $ou += "," + $_.deviceid }
$out_csv += $ou
}
$out_csv | Out-File 'C:\Users\Administrator\disk.csv'
將以下數據用作c:\\temp\\comp.csv
ComputerName, Disk
Comp1, C:
Comp1, D:
Comp2, C:
Comp2, D:
Comp3, C:
Comp3, D:
Comp3, E:
Comp4, C:
您可以使用 :
$comp = Import-Csv C:\temp\comp.txt
$comp | Group-Object -Property computername | % {$a=$_.name; $_.group | % {$n=0;$d0="";$d1="";$d2=""}{Set-Variable -Name "D$n" -Value $_.disk;$n++}; [pscustomobject]@{ComputerName=$a;d1=$d0;d2=$d1;d3=$d2}} | Export-Csv "c:\temp\comp.csv"
這給出了:
#TYPE System.Management.Automation.PSCustomObject
"ComputerName","d1","d2","d3"
"Comp1","C:","D:",""
"Comp2","C:","D:",""
"Comp3","C:","D:","E:"
"Comp4","C:","",""
您可以調整這種方式來管理WMI CmdLet的輸出
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.