在 SQL Server 代理中运行 Windows PowerShell 步骤

使用 SQL Server 代理可以在计划时间运行 SQL Server PowerShell 脚本。

  1. 开始之前:限制和局限

  2. 若要从SQL Server 代理运行 PowerShell,请使用:PowerShell 作业步骤命令提示符作业步骤

开始之前

共有多种类型的 SQL Server 代理作业步骤。 每种类型都与用来实现特定环境(如复制代理或命令提示环境)的子系统关联。 可以对 Windows PowerShell 脚本进行编码,然后使用 SQL Server 代理将这些脚本包括在按计划时间运行或者为了响应 SQL Server 事件而运行的作业中。 可以使用命令提示作业步骤或 PowerShell 作业步骤运行 Windows PowerShell 脚本。

  1. 使用 PowerShell 作业步骤让SQL Server 代理子系统运行sqlps实用工具,这将启动 PowerShell 2.0 并导入sqlps模块。

  2. 使用命令提示作业步骤以便运行 PowerShell.exe,并且指定导入 sqlps 模块的脚本。

限制和局限

注意

使用sqlps模块运行 PowerShell 的每个SQL Server 代理作业步骤都会启动一个消耗大约 20 MB 内存的进程。 同时运行大量的 Windows PowerShell 作业步骤会对性能产生负面影响。

创建 PowerShell 作业步骤

创建 PowerShell 作业步骤

  1. 展开“SQL Server 代理” ,创建一个新作业或右键单击一个现有作业,再单击“属性” 。 有关创建作业的详细信息,请参阅 创建作业

  2. “作业属性” 对话框中,单击 “步骤” 页,再单击 “新建”

  3. “新建作业步骤” 对话框中,键入作业的 “步骤名称”

  4. “类型” 列表中单击 PowerShell

  5. “运行身份” 列表中,选择该作业将要使用的代理帐户和凭据。

  6. “命令” 框中,输入将为该作业步骤执行的 PowerShell 脚本语法。 或者,单击 “打开” ,选择包含脚本语法的文件。

  7. 单击 “高级” 页设置以下作业步骤选项:当该作业步骤成功或失败时将执行的操作、 SQL Server 代理应该尝试执行该作业步骤的次数以及重试的时间间隔。

创建命令提示作业步骤

创建 CmdExec 作业步骤

  1. 展开“SQL Server 代理” ,创建一个新作业或右键单击一个现有作业,再单击“属性” 。 有关创建作业的详细信息,请参阅 创建作业

  2. “作业属性” 对话框中,单击 “步骤” 页,再单击 “新建”

  3. “新建作业步骤” 对话框中,键入作业的 “步骤名称”

  4. “类型” 列表中,选择 “操作系统(CmdExec)”

  5. “运行身份” 列表中,选择具有作业将使用的凭据的代理帐户。 默认情况下,CmdExec 作业步骤在 SQL Server 代理服务帐户的上下文中运行。

  6. “成功命令的进程退出代码” 框中,输入一个介于 0 到 999999 之间的值。

  7. “命令” 框中,输入 powershell.exe 以及指定要运行的 PowerShell 脚本的参数。

  8. 单击“高级”页设置以下作业步骤选项,例如:当作业步骤成功或失败时将执行的操作、SQL Server 代理应尝试执行该作业步骤的次数,以及 SQL Server 代理可将作业步骤输出写入的文件。 只有 sysadmin 固定服务器角色的成员才可以将作业步骤输出写入到操作系统文件中。

另请参阅

SQL Server PowerShell