param( [string]$storageAccount, [string]$blobContainer, [string]$instanceName, [string]$databaseName, [string]$storageKey ) import-module sqlps; $sqlPath = "sqlserver:\sql\$($env:COMPUTERNAME)" $credentialName = "backupCredential-$(Get-Random)" $backupFile = "AxDB_PAR_$(Get-Date -Format yyyy_MM_dd_HH_mm_ss).bak" $path = "$($sqlPath)\$($instanceName)\credentials" $backupUrlContainer = "https://$storageAccount.blob.core.windows.net/$blobContainer/$($backupFile)" $removePath = "$($path)\$($credentialName)" $secureString = ConvertTo-SecureString $storageKey -AsPlainText -Force try { Set-Location $sqlPath $secureString = ConvertTo-SecureString $storageKey -AsPlainText -Force Write-Host "Generate credential: " $credentialName New-SqlCredential -Name $credentialName -Identity $storageAccount -Secret $secureString -Path $path -ea Stop | Out-Null Write-Host "Backup database: " $backupUrlContainer Backup-SqlDatabase -Database $databaseName -Path $path -SqlCredential $credentialName -BackupFile $backupUrlContainer -BackupAction Database -NoRewind -BackupSetName "AxDB-Full Database Backup" -CompressionOption On Write-Host "Remove credential: " $credentialName Remove-SqlCredential -Path $removePath -ea Stop | Out-Null }catch{ Write-Host $_.Exception.Message } Write-Host "Done"