簡體   English   中英

在SQL Server代理中運行PowerShell腳本不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM