web-dev-qa-db-ja.com

PowerShellのSMOを使用して、ジョブステップ出力ファイルを追加し、上書きしないように指定する方法はありますか?

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
3
datagod

私はそれがより下の線に沿っていると思います

$jobStep.JobStepFlags = "AppendToLogFile"
  #call the alter to modify
$jobStep.Alter()
  #display it
$jobStep.JobStepFlags
5
Kin Shah
$jobStep.JobStepFlags = "AppendToLogFile"

または

$jobStep.JobStepFlags = 2
1
Adán Bucio