我有以下脚本检查特定的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
之前启动的位置任何人都可以告诉我我做错了什么?
感谢
答案 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