1

我在下面的这些代码都可以正常工作 - 但是当我尝试导出到 xls 时它不会导出任何东西 - 我现在变得失明......任何人都可以帮忙吗?

$StoppedInstances = (Get-EC2Instance).instances | Where-Object {$_.State.Name -eq "stopped"  -or $_.State.Name -eq "running"} 
$VPCS = Get-EC2Vpc
foreach ($VPC in $VPCS) {
    $StoppedInstances | Where-Object {$_.VpcId -eq $VPC.VpcId} | foreach {
       New-Object -TypeName PSObject -Property @{
           'InstanceId' = $_.InstanceId
           'InstanceName' = ($_.Tags | Where-Object {$_.Key -eq 'Name'}).Value
           'LaunchTime' = $_.LaunchTime
           'State' = $_.State.Name
           #'State1' = $_.State.GetType()
           'Private IP' = $_.PrivateIpAddress
           'Public IP' = $_.PublicIpAddress
           'Public Dns' = $_.PublicDnsName
           'loadbalace' = $_.AmiLaunchIndex
            'vpcID' = $_.VpcId
            'instancetype' = $_.InstanceType
           'EBSDISK' = $_.BlockDeviceMappings.Count
           'ELB' = $_.NetworkInterfaces
       } | Format-Table -GroupBy date -Wrap | Export-Csv C:\temp\test4.csv
   }
}
4

1 回答 1

1

因为您正在输入格式表。Format-Table 仅在您将数据发送到屏幕时使用,例如当您想在控制台中查看某些内容时。删除您的 Format-Table 语句,这将按原样工作。

在此示例中,我使用 Tee-Object 来捕捉包含命令输出的变量,然后将主流发送到 Format-Table 以供查看。

然后,在下一步中,我们将该变量通过管道传输到您要导出的 CSV 文件中。

$StoppedInstances = (Get-EC2Instance).instances | Where-Object {$_.State.Name -eq "stopped"  -or $_.State.Name -eq "running"} 
$VPCS = Get-EC2Vpc
$export = foreach ($VPC in $VPCS) {
    $StoppedInstances | Where-Object {$_.VpcId -eq $VPC.VpcId} | foreach {
       New-Object -TypeName PSObject -Property @{
           'InstanceId' = $_.InstanceId
           'InstanceName' = ($_.Tags | Where-Object {$_.Key -eq 'Name'}).Value
           'LaunchTime' = $_.LaunchTime
           'State' = $_.State.Name
           #'State1' = $_.State.GetType()
           'Private IP' = $_.PrivateIpAddress
           'Public IP' = $_.PublicIpAddress
           'Public Dns' = $_.PublicDnsName
           'loadbalace' = $_.AmiLaunchIndex
            'vpcID' = $_.VpcId
            'instancetype' = $_.InstanceType
           'EBSDISK' = $_.BlockDeviceMappings.Count
           'ELB' = $_.NetworkInterfaces
       } 
    }
} 

$export | Format-Table -GroupBy date -Wrap 
$export | Export-Csv C:\temp\test4.csv
于 2015-12-08T17:22:44.570 回答