运行 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
我有一个 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