$restoreDir = "c:\shared\Temp\" # last slash very important!
if ((test-path $restoreDir) -eq $false ) # Verify folder exists
{
$a = Read-Host("Path Not Found!")
Exit -1
}
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | out-null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | out-null
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | Out-Null
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoEnum") | Out-Null
$files = get-childitem $restoreDir -recurse
foreach ($file in $files)
{
$backupFile = $restoreDir + $file
$server = New-Object ("Microsoft.SqlServer.Management.Smo.Server") "(local)"
$backupDevice = New-Object ("Microsoft.SqlServer.Management.Smo.BackupDeviceItem") ($backupFile, "File")
$dbRestore = new-object("Microsoft.SqlServer.Management.Smo.Restore")
$dbRestore.NoRecovery = $false;
$dbRestore.ReplaceDatabase = $true;
$dbRestore.Action = "Database"
$dbRestore.Devices.Add($backupDevice)
$dbRestoreDetails = $dbRestore.ReadBackupHeader($server)
"Restoring Database: " + $dbRestoreDetails.Rows[0]["DatabaseName"]
$dbRestore.Database = $dbRestoreDetails.Rows[0]["DatabaseName"]
$dbRestore.SqlRestore($server)
}
Tuesday, March 6, 2012
Restore SQL DBs Using PowerShell
Of course the next logical thing after getting your backup script working is to create your restore script... I used Donabel Santos's script from http://www.sswug.org/articles/viewarticle.aspx?id=44909 as a reference.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment