繁体   English   中英

无法在 SQL 服务器代理作业步骤中运行 Powershell 命令

[英]Can't run a Powershell command in a SQL Server Agent Job Step

我尝试使用“Powershell”选项和命令(均无效):

Get-Item "*.csv" | Out-File "d:\tracking\$(get-date -f yyyyMMdd-hhmmss).txt"

"Get-Item """*.csv""" | Out-File """d:\tracking\$(get-date -f yyyyMMdd-hhmmss).txt""""

并尝试使用“CmdExec”选项和命令(它不起作用):

powershell.exe -Command "Get-Item """*.csv""" | Out-File """d:\tracking\$(get-date -f yyyyMMdd-hhmmss).txt""""

但最后一个命令在单独的 cmd.exe window 上运行正常,以下命令在 powershell 中也运行正常:

Get-Item "*.csv" | Out-File "d:\tracking\$(get-date -f yyyyMMdd-hhmmss).txt"

他们创建一个文本文件,例如。 “20220607-112233.txt”包含 CSV 个文件的目录列表

但是我无法在作业步骤中使用此命令该步骤以“无法运行。语法错误”结束

好的,我找到了解决方案:

我用块 2 中的代码创建了一个批处理(.bat 文件):

powershell.exe -Command "Get-Item """*.csv""" | Out-File """d:\tracking\$(get-date -f yyyyMMdd-HHmmss).txt""""

(我只将 hh 更改为 HH,基于 24 小时的时间)

然后,我将作业步骤配置为运行 bat 文件(设置选项“cmdExec”)

就这样

我不知道发生了什么,目录权限没问题,如果我用xp_cmdshell执行上面代码块 #2 的命令甚至可以工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM