运行 SQL Server Agent 中的 PowerShell 脚本不工作

Running a PowerShell script in SQL Server Agent is not working

我有一个 SQL 服务器代理作业,它 运行 是一个 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没有在指定的位置创建。

我查看了工作历史,上面写着:

The job script encountered the following errors. These error did not stop the script: (.....) The corresponding line is $result | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Set-Content \SERVER\c$\Folder\file.csv. Correct the script and reschedule the job. The error information returned by PowerShell is 'Cannot use interface. The IContentCmdletProvider interface is not implemented by this provider.'. Process Exit Code 0.

有人可以帮助我了解我所缺少的吗? 这是我的第一个 PowerShell 项目,所以我可能遗漏了对其他人来说显而易见的东西..?

似乎是因为路径中的服务器名称而抱怨。

我原来有:

ConvertTo-Csv -NoTypeInformation | 
    Select-Object -Skip 1 | 
    Set-Content  \SERVER\c$\Folder\file.csv

但是通过 CD 进入目录并指定文件就可以了:

$directoryPath = "C:\Folder"
cd $directoryPath
ConvertTo-Csv -NoTypeInformation | 
    Select-Object -Skip 1 | 
    Set-Content  C:\Folder\file.csv