Append data via Export-Csv

Helaas is in Powershell 5.x > de parameter -Append niet meer aanwezig in het commando Export-Csv. Het volgende script zal dan ook telkens het csv-bestand overschrijven:

[System.Data.Sql.SqlDataSourceEnumerator]::Instance.GetDataSources()
$ErrorActionPreference = "SilentlyContinue"

ForEach ($instance in Get-Content "SQLServers.txt")
{
     [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
     $sqlServer = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $instance
     $sqlDatabase = $sqlServer.Databases       
     $sqlDatabase | SELECT Parent, Name, Collation, CompatibilityLevel, AutoShrink, RecoveryModel, Size, SpaceAvailable, LastBackupDate | Export-Csv "SQLDatabases.csv" -NoTypeInformation   
}

Uitleg:

In het bestand SQLServers.txt staat een opsomming van de SQL-servers die we willen raadplegen. De uitvoer voor elke gevonden server in dit bestand gaat naar een CSV-bestand genaamd SQLDatabases.csv.
Dit gaan we nu aanpassen zodat de inhoud van de variabele $sqlDatabase uitgebreid wordt (let op de +=) en als laatste commando, buiten de ForEach-loop, voeren we de totale inhoud van de variabele naar een CSV-bestand.
[System.Data.Sql.SqlDataSourceEnumerator]::Instance.GetDataSources()
$ErrorActionPreference = "SilentlyContinue"

ForEach ($instance in Get-Content "SQLServers.txt")
{
     [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
     $sqlServer = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $instance
     $sqlDatabase += $sqlServer.Databases       
     $sqlDatabase | SELECT Parent, Name, Collation, CompatibilityLevel, AutoShrink, RecoveryModel, Size, SpaceAvailable, LastBackupDate 
} 
$sqlDatabase | SELECT Parent, Name, Collation, CompatibilityLevel, AutoShrink, RecoveryModel, Size, SpaceAvailable, LastBackupDate | Export-Csv "SQLDatabases.csv" -NoTypeInformation
De objecten van de databases worden nu steeds weggeschreven (en aangevuld) in $sqlDatabase en als alles ingelezen is, voeren we de totale inhoud naar het CSV-bestand.