2017-10-24 24 views
0

PowerShellスクリプトを実行してデータベースからデータを取り出し、csvファイルに保存するSQL Serverエージェントジョブがあります。SQL ServerエージェントでPowerShellスクリプトを実行していません

ジョブタイプはPowerShellに設定され、コマンドは次のようになります。私はこの仕事を実行すると

[email protected]'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です。スクリプトを訂正し、 ジョブのスケジュールを変更してください。 PowerShellによって返されるエラー情報は'Cannot use interface. The IContentCmdletProvider interface is not implemented by this provider.'です。プロセス終了コード0

誰かが私が迷っていることを理解するのに役立つでしょうか? これは私の最初のPowerShellプロジェクトです。だから、おそらく他の人には明白なことがありません。

+0

あなたはSQLに接続するために、PowerShellを実行するためにSQLを使用している任意の特定の理由を:

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

が、ディレクトリにCDingやファイルを指定するには、トリックをやりましたか?なぜそこからプロシージャを実行してエクスポートしないのですか?おそらくあなたのニーズに応じてSSISを使用してください。 – Matt

+0

@Matt PSスクリプトの前に実行する必要がある他のジョブがあるので、SQL Serverエージェントのジョブステップの一部としてPSを実行できることを期待していました。 – kabichan

+0

PowerShellの 'Export-Csv'コマンドレットを試してみませんか? '$ result | Export-Csv -path \\ SERVER \ c $ \ Folder \ file.csv -NoTypeInformation' –

答えて

0

パス内のサーバー名のために不平を言っていたようです。私はもともと持っていた

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

これは解決策であるようですが、この[link](https://mattypennysite.wordpress.com/2015/11/19/powershell- 根本的な原因は何かわかりませんが、何とかそのトリックを行います。 –

関連する問題