Sql-Server
通過 SQL Server 代理作業呼叫 PowerShell 命令“New-Item”時失敗
我有以下 PowerShell 腳本來在共享位置創建一個文件夾。共享對每個人都有完全控制權限。我已授予所有測試權限。
問題是當我手動執行時腳本工作正常。當我將它作為 SQL Server 代理服務帳戶執行時,它也可以正常執行。但是,當我嘗試作為 SQL Server 代理作業的一部分執行時,相同的腳本會失敗。我在這裡錯過了什麼嗎?
$path = "\\server\shared\path\01222020" New-Item -path $path -ItemType Directory -Force Exception: Date 1/22/2020 5:25:10 PM Log Job History (test) Step ID 1 Server serverA Job Name Test Step Name Test Duration 00:00:01 Sql Severity 0 Sql Message ID 0 Operator Emailed Operator Net sent Operator Paged Retries Attempted 0 Message Executed as user: domain\agent_service_account. A job step received an error at line 9 in a PowerShell script. The corresponding line is 'New-Item -path $path -ItemType Directory '. Correct the script and reschedule the job. The error information returned by PowerShell is: 'Invalid Path: '\\server\shared\path\01222020'. '. Process Exit Code -1. The step failed.
從 PowerShell 作業步驟訪問 UNC 路徑或任何不是本地驅動器(即系統資料庫)的“位置”時,您需要在路徑前加上
Microsoft.PowerShell.Core\FileSystem::
. 這告訴 SQLPS 要使用哪個提供程序,這在普通 PowerShell 中不是必需的,但在 SQL Server 實現中是必需的。或者,您可以預先將目錄更改為本地驅動器 (cd C:),然後它應該可以在不為提供程序名稱添加前綴的情況下工作,但您可能希望保留在預設
SQLSERVER:\SQL\SERVERNAME\INSTANCENAME
路徑中,具體取決於您的腳本需要什麼。更多資訊: