23、SQL Server Agent与PowerShell的高效协作及管理

SQL Server Agent与PowerShell的高效协作及管理

1. 确保PowerShell失败时Agent作业失败

在使用CmdExec作业步骤运行SQL Server Agent作业时,我们期望当PowerShell返回错误时,Agent作业也能相应失败。但默认情况下,作业步骤不会返回能让SQL Server Agent识别为失败的退出代码。例如,表面上Agent作业可能显示为成功(有绿色对勾),但仔细查看会发现PowerShell脚本实际上失败了。

常见的错误信息如“Copy - DbaLogin未被识别为cmdlet、函数、脚本文件或可执行程序”,这通常是因为无法导入dbatools模块。若遇到此错误,需确保dbatools对用户可用。

为解决此问题,可按以下步骤操作:
1. 添加 - EnableException参数 :成功导入dbatools后,添加 - EnableException参数可使作业按预期失败。可在脚本顶部设置一次该参数的值,将其限制为所有包含 - Dba的dbatools命令:

PS> $PSDefaultParameterValues['*-Dba*:EnableException'] = $true
  1. 使用try/catch块 :为确保所有PowerShell命令传递正确的退出代码,需将它们放在try/catch块中。示例代码如下:

                
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值