私はpowershellを初めて使用しており、すべてのSQLエージェントジョブをスクリプト化しようとしています。私は、SOLID QUALITY MENTORSのENRIQUEのおかげでそのようなコードを見つけました。すべてのSQLエージェントジョブでスクリプトが削除される
私の質問は、どのようにスクリプトを作成すればよいのですか?すべてのジョブを削除しますか? Options.ScriptJobsは私がそれをするべきだとは思わないでしょうか?
PARAM([文字列] $サーバー名、[文字列] $ jobNameFile)
関数スクリプトSQLJobs([文字列] $サーバ、[文字列] $ jobNameFile) { [reflection.assembly] :: LoadWithPartialName ( "Microsoft.SqlServer.Smo")|アウトヌル
$srv = New-Object Microsoft.SqlServer.Management.Smo.Server("$server")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$scrp = New-Object Microsoft.SqlServer.Management.Smo.Scripter($srv)
$scrp.Options.ScriptDrops = $TRUE
$scrp.Options.WithDependencies = $TRUE
$jobNameFile = "C:\SQLJOBS\Jobs.sql"
remove-item $jobNameFile
$jobs = $srv.JobServer.get_Jobs()
$jobs=$jobs | Where-Object {$_.Name -notlike "sys*"}
foreach($job in $jobs)
{
$script=$job.Script()
$script >> $jobNameFile
"GO" >> $jobNameFile
}
}
スクリプト-SQLJobs $ serverNameの$ jobNameFile
感謝します。