使用 PowerShell 中的 SMO,有没有办法声明应附加而不是覆盖 jobstep 输出文件?

dat*_*god 3 powershell sql-server-2012 smo

我使用 PowerShell 脚本将多个 SQL Server 作业部署到一组服务器。我可以创建作业步骤、成功失败操作,甚至是输出文件。这一切都适用于多台服务器。我无法确定的是如何指定将输出文件附加到而不是覆盖。

以下是我的主脚本部分。$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()
Run Code Online (Sandbox Code Playgroud)

我一直在使用这个 MSDN页面作为参考。

我使用 SQL Server Management Studio 修改了其中一个步骤并跟踪了结果。这看起来很有希望。创建作业步骤后,我可以发出 SQL 命令。

EXEC msdb.dbo.sp_update_jobstep @job_id=N'12156dcb-c8cd-4267-901a-55175dd44960', @step_id=1 ,
        @flags=2
Run Code Online (Sandbox Code Playgroud)

Kin*_*hah 5

我认为它更符合以下几行

$jobStep.JobStepFlags = "AppendToLogFile"
  #call the alter to modify
$jobStep.Alter()
  #display it
$jobStep.JobStepFlags
Run Code Online (Sandbox Code Playgroud)