SQL 代理 PowerShell 语法错误

Geo*_*wdy 6 sql-server powershell sql-server-agent sql-server-2016 dbatools

我正在尝试在 SQL 代理作业 (SQL Server 2016) 中设置 PowerShell 脚本。我正在使用第三方模块 DBATOOLS.psd1,它似乎是我遇到语法错误的地方。目前我的 SQL 作业有一行代码失败:

Import-Module e:\dbatools-master\dbatools-master\dbatools.psd1
Run Code Online (Sandbox Code Playgroud)

为什么作业失败并出现以下错误?当我通过 PowerShell ISE 运行它时,此命令工作正常。

Error Message: Unable to start execution of step 1 (reason: line(5): Syntax error).  The step failed.
Run Code Online (Sandbox Code Playgroud)

Nic*_*Nic 5

如果将此作为 SQL Server 代理作业步骤运行,则需要使用Operating system (CmdExec)步骤类型,而不是PowerShell类型。

CmdExec这将是最好创建计算机上的文件与所有您需要的,然后调用的步骤。

例如创建一个文件C:\PowerShellScripts\MyScript.ps1,其中包含...

Import-Module e:\dbatools-master\dbatools-master\dbatools.psd1
Copy-SqlLogin -Source ServerA -Destination ServerB
Run Code Online (Sandbox Code Playgroud)

然后powershell.exe "& 'C:\PowerShellScripts\MyScript.ps1'"CmdExec作业步骤中使用该脚本调用该脚本。