我正在尝试通过PsExec的用户帐户调用bash命令。正在使用Cygwin,我正在尝试从SQL运行命令:
exec master..xp_cmdshell 'psexec -u cyg_server -p <pwd> -accepteula "bash script.sh"';
但是,我从psexec
收到以下错误:
访问被拒绝。
PsExec无法启动bash script.sh:
有什么建议吗?
我正在使用SQL 2005,Windows Server 2008和Cygwin以及新的二进制文件
答案 0 :(得分:1)
您可能以SQL用户或没有该文件权限的用户身份运行此操作。我最好的选择是SQL用户(例如sa
)。执行此操作时,它使用的Windows凭据属于服务帐户,默认情况下为SYSTEM
,但如果您这样设置,则可能是其他内容。
如果您只是在SQL中调用它,请确保您实际上是以具有打开所有必需文件的权限的Windows用户身份运行。
如果这是在SQL Server代理作业中运行,则需要set up a Credential,然后set up a Proxy。完成后,您可以指定代理来运行作业(它是“作业步骤”对话框中的第三个或第四个下拉列表),它将使用正确的Windows凭据运行。