PowerShellスクリプトを使用して、複数のSQLServerジョブをサーバー群に展開します。ジョブステップ、成功失敗アクション、さらには出力ファイルを作成できます。これはすべて複数のサーバーで機能します。私が判断できないのは、出力ファイルを上書きする代わりにに追加するように指定する方法です。
以下は私のメインスクリプトのセクションです。 $Job
は前のステップで入力されます。
$JobStep = new-object ('Microsoft.SqlServer.Management.Smo.Agent.JobStep') ($Job, 'MyJobStepName')
$JobStep.ID = 1
$JobStep.SubSystem = 'PowerShell'
$Command = 'dir d:\'
$JobStep.Command = $Command
$JobStep.OnSuccessAction = 'GotoNextStep'
$JobStep.OnFailAction = 'GotoNextStep'
$JobStep.OutputFileName = 'D:\MyJobFile.txt'
$JobStep.Create()
私は このMSDN ページを参照として使用しています。
SQL Server Management Studioを使用して手順の1つを変更し、結果をトレースしました。これは有望に見えます。ジョブステップを作成した後、SQLコマンドを発行できます。
EXEC msdb.dbo.sp_update_jobstep @job_id=N'12156dcb-c8cd-4267-901a-55175dd44960', @step_id=1 ,
@flags=2
私はそれがより下の線に沿っていると思います
$jobStep.JobStepFlags = "AppendToLogFile"
#call the alter to modify
$jobStep.Alter()
#display it
$jobStep.JobStepFlags
$jobStep.JobStepFlags = "AppendToLogFile"
または
$jobStep.JobStepFlags = 2