Sql-Server
SQL 代理 PowerShell 語法錯誤
我正在嘗試在 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
作業步驟中呼叫該腳本。