通过SQL运行Powershell脚本

fur*_*ace 5 sql powershell jobs

我有一个脚本,针对名为Server1的SQLServer运行Invoke-SQLCmd.从中收集的数据将传递给另一个针对Server2触发的脚本,并将结果插回到Server 1上的表中.在每个Invoke-SQLCmd上,我使用了-user -password和一个具有sa的帐户两个系统上的权限.

当我从命令shell或Poershell ISE运行脚本时,我的数据被插入到表中,并且每个工作都正常; 当我从SQL中运行它时没有任何反应.当我使用xp_cmdshell时,我得不到输出(返回"null").

xp_cmdshell 'powershell.exe -file c:\script.ps1 -ExecutionPolicy Unrestricted'
Run Code Online (Sandbox Code Playgroud)

我已将其放入SQLjob并使用链接到我的域帐户的代理帐户,该帐户在两个框上都具有管理员权限,但仍未在作业历史记录中记录任何结果,并且在Server1上的表中没有数据.

我究竟做错了什么?当它从ISE起作用时,这肯定会起作用吗?

Cha*_*ler 4

我这样做没有任何问题,甚至创建了几篇博文:

http://sev17.com/2009/04/05/executing-powershell-in-sql-server

http://sev17.com/2010/11/29/executing-powershell-in-sql-server-redux

我正在做的另一件事是使用带有文件名的-command参数而不是-file,但这应该没有区别.我还将文件名用双引号括起来,但如果脚本文件在文件路径中没有空格,则这应该没有区别.

除此之外,我需要看看你的脚本在做什么.例如它是否连接到其他机器?你可以在powershell中运行一个简单的命令,比如'powershell -command get-command'吗?

  • 你的链接坏了 (3认同)