Export-SqlVulnerabilityAssessmentScan

Exports a Vulnerability Assessment scan to a file.

Syntax

Export-SqlVulnerabilityAssessmentScan
      -ScanResult <ScanResult>
      -FolderPath <String>
      [-Force]
      [<CommonParameters>]

Description

The Export-SqlVulnerabilityAssessmentScan cmdlet exports a Vulnerability Assessment scan to a file. Currently the command supports exporting a scan to Excel (.xlsx) file format only.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

Examples

Example 1: Export a Vulnerability Assessment scan to Excel file

PS C:\> $scanResult = Invoke-SqlVulnerabilityAssessmentScan -ServerInstance "MyComputer\MainInstance" -Database some_database
PS C:\> $scanResult | Export-SqlVulnerabilityAssessmentScan -FolderPath "ScanResult.xlsx"

In this example, we invoke a Vulnerability Assessment scan on a database then export it to an Excel file.

Example 2: Iterate over databases on some servers and export VA scans to Excel files

PS C:\> @('localhost\SQL2016', 'localhost\SQL2017') | 
  Get-SqlDatabase |
  Where-Object { $_.Name -like 'keep_*' } |
  ForEach-Object  {
    Invoke-SqlVulnerabilityAssessmentScan -ServerInstance $_.Parent -Database $_.Name | 
    Export-SqlVulnerabilityAssessmentScan -FolderPath "$($env:TEMP)\$(($_.Parent).Name -replace '\\', '_' )_$($_.Name)_ScanResult.xlsx"
  }

PS C:\> dir "$env:TEMP\*_ScanResult.xlsx"

    Directory: C:\Users\someuser\AppData\Local\Temp

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        10/6/2018   1:19 AM          80050 SQL2016_keep_MDW_ScanResult.xlsx
-a----        10/6/2018   1:19 AM          80355 SQL2017_keep_MyDB_ScanResult.xlsx
-a----        10/6/2018   1:19 AM          79416 SQL2017_Keep_WideWorldImporters_ScanResult.xlsx

In this example, we show a simple way to quickly scan databases on a set of SQL Servers (in this case, 2 instances running on the local machine). The list of databases is filtered on the name, so only the ones whose names start with "keep_" are scanned). The results are stored under the TEMP folder in Excel files with a name that identifies the server and the databases the scan referred to.

Parameters

-FolderPath

Where the exported file will be saved

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Force

Whether to force overwrite of the file if it already exists. If this parameter is not present, you will be prompted before the operation continues.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScanResult

The Vulnerability Assessment scan result to export. The scan result must contain the relevant security checks' metadata.

Type:ScanResult
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Inputs

Microsoft.SqlServer.VulnerabilityAssessment.ScanResult

Outputs

System.Object