{"id":74341,"date":"2015-10-30T11:59:00","date_gmt":"2015-10-30T11:59:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/heyscriptingguy\/2015\/10\/30\/powertip-use-powershell-to-back-up-system-databases\/"},"modified":"2019-02-18T09:34:43","modified_gmt":"2019-02-18T16:34:43","slug":"powertip-use-powershell-to-back-up-system-databases","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/scripting\/powertip-use-powershell-to-back-up-system-databases\/","title":{"rendered":"PowerTip: Use PowerShell to Back Up System Databases"},"content":{"rendered":"<p><b style=\"font-size:12px\">Summary<\/b><span style=\"font-size:12px\">: Use Windows PowerShell to back up system databases.<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/q-for-powertip.jpg\" alt=\"Hey, Scripting Guy! Question\" \/>&nbsp;How can I use Windows PowerShell to dynamically back up all of the system databases on my servers?<\/p>\n<p style=\"margin-left:30px\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/a-for-powertip.jpg\" alt=\"Hey, Scripting Guy! Answer\" \/>&nbsp;Combining provider lookups with the Backup-SqlDatabase cmdlet makes this simple:<\/p>\n<p>$instances = @(&lsquo;KIRK&rsquo;,&rsquo;SPOCK&rsquo;,&rsquo;PICARD&rsquo;,&rsquo;RIKER&rsquo;)<\/p>\n<p>foreach($instance in $instances){<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $dbs = Get-ChildItem SQLSERVER:\\SQL\\$instance\\DEFAULT\\Databases -Force |<\/p>\n<p>Where-Object {$_.IsSystemObject -eq $true -and $_.Name -ne &#039;TempDB&#039;}<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;$dbs |<\/p>\n<p>ForEach-Object {<\/p>\n<p>Backup-SqlDatabase -ServerInstance $instance -Database $_.Name -BackupFile &quot;C:\\DBFiles\\$($_.Name).bak&quot; -Initialize }}<\/p>\n<p>$instances |<\/p>\n<p>ForEach-Object {Invoke-Command -ComputerName $_ -ScriptBlock {Get-ChildItem C:\\DBFiles\\*.bak}}<\/p>\n<p style=\"margin-left:60px\"><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/hsg-10-30-15-tip.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/29\/2019\/02\/hsg-10-30-15-tip.png\" border=\"0\" alt=\" \" \/><\/a><\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summary: Use Windows PowerShell to back up system databases. &nbsp;How can I use Windows PowerShell to dynamically back up all of the system databases on my servers? &nbsp;Combining provider lookups with the Backup-SqlDatabase cmdlet makes this simple: $instances = @(&lsquo;KIRK&rsquo;,&rsquo;SPOCK&rsquo;,&rsquo;PICARD&rsquo;,&rsquo;RIKER&rsquo;) foreach($instance in $instances){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $dbs = Get-ChildItem SQLSERVER:\\SQL\\$instance\\DEFAULT\\Databases -Force | Where-Object {$_.IsSystemObject -eq $true -and [&hellip;]<\/p>\n","protected":false},"author":596,"featured_media":87096,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[56,399,356,3,45],"class_list":["post-74341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripting","tag-guest-blogger","tag-mike-fal","tag-powertip","tag-scripting-guy","tag-windows-powershell"],"acf":[],"blog_post_summary":"<p>Summary: Use Windows PowerShell to back up system databases. &nbsp;How can I use Windows PowerShell to dynamically back up all of the system databases on my servers? &nbsp;Combining provider lookups with the Backup-SqlDatabase cmdlet makes this simple: $instances = @(&lsquo;KIRK&rsquo;,&rsquo;SPOCK&rsquo;,&rsquo;PICARD&rsquo;,&rsquo;RIKER&rsquo;) foreach($instance in $instances){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $dbs = Get-ChildItem SQLSERVER:\\SQL\\$instance\\DEFAULT\\Databases -Force | Where-Object {$_.IsSystemObject -eq $true -and [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/74341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/users\/596"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/comments?post=74341"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/posts\/74341\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/media\/87096"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/media?parent=74341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/categories?post=74341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/scripting\/wp-json\/wp\/v2\/tags?post=74341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}