export-csv error - 不允许使用空管道元素

时间:2016-03-15 14:58:59

标签: powershell scripting powercli

希望在这里快速简单...

我有以下脚本检查特定的vlan ID,然后显示使用该ID的VM

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
} 

我在最后添加了export-csv命令作为id,就像要放入csv的详细信息一样,然后我可以发送电子邮件(之后会尝试编写电子邮件部分的脚本)

我无法获取export-csv选项来创建csv文件,因为它返回时出现错误

c:\ scripts \ checkvlan.ps1:2 char84

不允许使用空管道元素

char84是管道在export-csv

之前启动的位置

任何人都可以告诉我我做错了什么?

感谢

2 个答案:

答案 0 :(得分:0)

尝试:

A<Class_C> foo;
A<Class_D> bar;

答案 1 :(得分: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