我有一个 PowerShell 脚本,其中包含使用批量复制命令将数据从 1 个 SQL Server 传输到另一个 SQL Server 的逻辑。
在 Powershell版本 5中,我安装了 SQLServer 模块来执行上述活动。
当我通过 PowerShell 工具从本地计算机执行 Powershell 脚本时,它是成功的。同样,当我通过我的帐户具有管理员访问权限的 PowerShell 工具再次从远程服务器(Windows 2012 R2)执行相同的命令时,它成功了。
但是,当我从指向使用服务帐户的上述远程服务器的 Jitterbit (ETL) 工具调用相同的命令时,它失败并出现以下错误
Could not load file or assembly 'Microsoft.SqlServer.BatchParser, Version=15.100.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies
我确实检查了几个站点是否存在上述错误,几乎所有地方都建议安装 SharedManagementObjects.msi 和 SQLSysClrTypes.msi所以我确实将它安装在远程服务器上,其版本特定于我的 MSSQL 2016,但仍然是同样的问题。
还检查了目录(C:\Program Files\WindowsPowerShell\Modules\SqlServer\21.1.18230),我还可以看到 Microsoft.SqlServer.BatchParser.dll 文件存在。
所以现在我不确定为什么会出现这个问题,它似乎是服务帐户的权限问题,所以基于我对 PowerShell 的有限知识,我设置了以下权限但仍然没有用,有人可以帮我解决这个问题。
更新
上述错误已解决,但从 Jitterbit 执行时脚本未执行,没有错误但只是未执行,但是,如果我使用我的登录名登录到远程服务器并从 PowerShell 工具本身执行它,它正在执行。我的猜测仍然是相同的,它必须对阻止脚本执行的服务帐户的权限做一些事情。