Sql-Server

SQL 代理 PowerShell 語法錯誤

  • June 14, 2017

我正在嘗試在 SQL 代理作業 (SQL Server 2016) 中設置 PowerShell 腳本。我正在使用第三方模組 DBATOOLS.psd1,這似乎是我遇到語法錯誤的地方。目前我的 SQL 作業有一行程式碼失敗:

Import-Module e:\dbatools-master\dbatools-master\dbatools.psd1

為什麼作業失敗並出現以下錯誤?當我通過 PowerShell ISE 執行此命令時,它執行良好。

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

如果您將此作為 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

powershell.exe "& 'C:\PowerShellScripts\MyScript.ps1'"然後在CmdExec作業步驟中呼叫該腳本。

引用自:https://dba.stackexchange.com/questions/176288