0

我正在尝试通过具有 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

4

1 回答 1

1

您可能正在以 SQL 用户或对该文件没有权限的用户身份运行它。我最好的选择是 SQL 用户(例如sa)。当您执行此操作时,它使用的 Windows 凭据属于服务帐户,这是SYSTEM默认设置,但如果您以这种方式进行设置,则可能是其他内容。

如果您只是从 SQL 中调用它,请确保您实际上是以有权打开所有必要文件的 Windows 用户身份运行的。

如果这是在 SQL Server 代理作业中运行,则需要设置 Credential,然后设置 Proxy。完成后,您可以分配代理来运行作业(它是“作业步骤”对话框中的第三或第四个下拉菜单),它将使用正确的 Windows 凭据运行。

于 2009-07-27T00:46:13.763 回答