I have a task where i have to take the backup with encryption and restore it to destination using the powershell.
I used the invoke-sql command and use the tsql in it but this command is not reliable for us rather we want to use the SQL powershell i.e backup-sqldatabase & restore sqldatabase.
my questions are what are the process to perform it (please i dont want to use invoke-sqlcmd)
- create master using powershell ( i use "create master key encryption by password = 'Abcd1234!'" in invoke-sqlcommand)
- Create certificate using powershell
- backup-certificate
- create backup using encryption
1 Answer 1
You can use dbatools which is powershell based.
For your case you need to have a 2 step approach.
- use the cmdlets in Backup and Restore – Certificates
Backup-DbaDbCertificate
Backup-DbaDbMasterKey
Restore-DbaDbCertificate
then use Copy-DbaDatabase
with -BackupRestore
switch. Alternately, you can use Backup-DbaDatabase
and then Restore-DbaDatabase
as per your needs.
-
i dont think, i can install that module due to limitation at work..but sqlps & sqlserver powershell modules are availableWaqas Sarwar MVP– Waqas Sarwar MVP2018年11月21日 15:41:52 +00:00Commented Nov 21, 2018 at 15:41
-
2Then the only option that you have is to code something that is already out by your selfKin Shah– Kin Shah2018年11月21日 15:45:53 +00:00Commented Nov 21, 2018 at 15:45
-
Those modules (SQLPS and SQLSERVER) do not come with cmdlets that covers the full spectra of T-SQL commands. Very very far from it. You have backup-sqldatabase and a few others. But in the end you only have a handful of cmdlets in those modules. So if you want to use something which is outside of the cmdlets, then use a 3:rd party (dbatools), Invoke-Sqlcmd or the SMO API (from powershell since ps allow using .Net assemblies).Tibor Karaszi– Tibor Karaszi2018年11月22日 07:54:36 +00:00Commented Nov 22, 2018 at 7:54