1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Import-Module "SQLPS" -DisableNameChecking
$ServerName = ".\sqlprod"
$SQLSvr = New-Object -TypeName Microsoft.SQLServer.Management.Smo.Server($ServerName)
$Db = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Database
foreach ($db in $SQLSvr.Databases | Where-Object {$_.Name -ne "tempdb"}){
if (!(test-path -path c:\folder\$db))
{New-Item -ItemType directory -Path c:\folder\$db
$path="c:\folder\"+$db
}
else
{write-error "folder existant"
}
$Backup = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Backup
$Backup.Action = [Microsoft.SQLServer.Management.SMO.BackupActionType]::Database
$backup.BackupSetDescription = "Full Back of "+$Db.Name
$Backup.Database = $db.Name
$BackupName = $path+"\"+$Db.Name+"_"+[DateTime]::Now.ToString("yyyyMMdd_HHmmss")+".bak"
$DeviceType = [Microsoft.SqlServer.Management.Smo.DeviceType]::File
$BackupDevice = New-Object -TypeName Microsoft.SQLServer.Management.Smo.BackupDeviceItem($BackupName,$DeviceType)
$Backup.Devices.Add($BackupDevice)
$Backup.SqlBackup($SQLSvr)
$Backup.Devices.Remove($BackupDevice)
} |
Partager