Вашему вниманию предлагается сильно упрощённый пример сценария Powershell, который предназначен для скриптования заданий SQL Server в отдельные файлы. Тут используется папка для файлов C:\TEMP, которая должна быть предварительно создана и, желательно, пуста. Поскольку имена заданий будут использованы в качестве имён файлов, желательно, что бы в них не использовались недопустимые для имён файлов символы. Если это неудобно, попробуйте внести изменения в то место сценария, где подобные символы заменяются на пробелы.
# Scripting jobs using Powershell
(separated files)
# Сценарий скриптования заданий в отдельные файлы
clear-Host
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo
") | Out-Null
$smoserver =
new-object("Microsoft.SqlServer.Management.Smo.Server")
"localhost"
$scrp = new-object ('Microsoft.SqlServer.Management.Smo.Scripter')
"localhost"
# Цикл коррекции и скриптования заданий
foreach ($job in $smoserver.JobServer.Jobs)
{
# Замена недопустимых символов в имени файла на пробелы
$JobName = $job.Name -replace ":",""
$JobName = $JobName -replace "/","-"
$scrp.Options.FileName = "C:\TEMP\" + $JobName +
".sql"
$scrp.Script($job) | Out-Null
}
# Измененяем сценарии заданий, что бы отключить их неконтролируемый запуск
$file = Get-ChildItem "C:\TEMP\*.sql"
foreach ($str in $file)
{
$content = Get-Content -path $str
$content | foreach {$_ -replace "enabled=1",
"enabled=0"} | Set-Content $str | Out-Null
}
Комментариев нет:
Отправить комментарий