[英]Running a PowerShell script in SQL Server Agent is not working
我有一個SQL Server代理作業,該作業運行PowerShell腳本以從數據庫中提取數據並將其保存在csv文件中。
作業類型設置為PowerShell
,命令如下所示:
$sql=@'exec my_stored_procedure'@
$result = Invoke-Sqlcmd -ServerInstance INSTANCE_NAME -Database DBNAME -Query $sql
#The first row gets removed and then save it to a csv file
$result | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Set-Content \\SERVER\c$\Folder\file.csv
當我運行此作業時,它運行成功,但是未在指定位置創建file.csv
。
我查看了工作記錄,上面寫着:
作業腳本遇到以下錯誤。 這些錯誤沒有停止腳本:(.....)對應的行是
$result | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Set-Content \\\\SERVER\\c$\\Folder\\file.csv
$result | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Set-Content \\\\SERVER\\c$\\Folder\\file.csv
$result | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Set-Content \\\\SERVER\\c$\\Folder\\file.csv
。 更正腳本並重新計划作業。 PowerShell返回的錯誤信息為'Cannot use interface. The IContentCmdletProvider interface is not implemented by this provider.'
'Cannot use interface. The IContentCmdletProvider interface is not implemented by this provider.'
。 處理退出代碼0。
有人可以幫助我了解我所缺少的嗎? 這是我的第一個PowerShell項目,因此我可能缺少了其他人顯而易見的東西。
似乎是因為路徑中的服務器名稱而抱怨。
我最初有:
ConvertTo-Csv -NoTypeInformation |
Select-Object -Skip 1 |
Set-Content \\SERVER\c$\Folder\file.csv
但是將CD CD到目錄並指定文件可以解決問題:
$directoryPath = "C:\Folder"
cd $directoryPath
ConvertTo-Csv -NoTypeInformation |
Select-Object -Skip 1 |
Set-Content C:\Folder\file.csv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.