2016-03-15 42 views
0

希望快速和容易的在這裏......出口CSV錯誤 - 空管元素是不允許

我有以下腳本來檢查特定的VLAN ID,然後讓我發現,正在使用的虛擬機ID

foreach($vm in (get-vm)){ 
if (Get-NetworkAdapter -vm $vm.name |?{$_.NetworkName -eq "vlan13_VM"}){$vm.name} | export-csv -path c:\scripts\vlans.csv -NoTypeInformation 
} 

我已經在末尾添加的出口CSV命令像的細節ID被放入一個CSV,我可以利用電子郵件(會後嘗試腳本的電子郵件部分)

我不能得到export-csv選項來創建csv文件,因爲它帶着一個錯誤說出

空管件是不允許的,在C:\腳本\ checkvlan.ps1:2 char84

char84是在管道出口CSV

有誰能夠告訴我在開始之前什麼我做錯了嗎?

感謝

回答

0
Get-VM | where { (Get-NetworkAdapter -vm $_.name).NetworkName -eq "vlan13_VM" } | select Name | export-csv -path c:\scripts\vlans.csv -NoTypeInformation 

或者,如果你想保持foreach結構,無論是

...使用Out-File代替Export-CSV

foreach ($vm in (Get-VM)) { if ((Get-NetworkAdapter -vm $vm.name).NetworkName -eq "vlan13_VM") {$vm.name | out-file c:\scripts\vlans.csv -Append} } 

...或收集的數據列表在哈希表和here

$out = @() 
foreach ($vm in (Get-VM)) { if ((Get-NetworkAdapter -vm $vm.name).NetworkName -eq "vlan13_VM") {$out += $vm.name} } 
$out | Select-Object @{Name='Name';Expression={$_}} | Export-CSV -path c:\scripts\vlans.csv -NoTypeInformation 
0

嘗試:

foreach($vm in (get-vm)){ 
    if (Get-NetworkAdapter -vm $vm.name |?{$_.NetworkName -eq "vlan13_VM"}) 
    {$vm.name | export-csv -path c:\scripts\vlans.csv -NoTypeInformation -append } 
} 
+0

感謝爲討論轉換爲對象..我給了一個嘗試,它與一個錯誤說 出口CSV回來了:一個參數不能在c:\ scripts \ checkvlan.ps1:3 char:79 –

+0

找到匹配參數名'append'--append無法識別? 然後嘗試遵循以下行: {$ vm.name | convertto-csv -NoTypeInformation >> c:\ scripts \ vlans.csv} – restless1987

+0

確定嘗試過這一行,它創建了一個csv文件,其中包含一些txt ..但沒有服務器名稱..它全部是 長度15 長度10 長度9 等等...... 48行... –