2017-01-23 22 views
0

ローカルのPCで正常に動作する非常に基本的なスクリプトがあります。これは単純にいくつかのフォルダをバックアップし、その内容はフォルダ名に日付スタンプを追加します。PowershellをSQL Serverジョブで実行しています

このスクリプトは、2つの異なるサーバー(Server2 & Server3)のフォルダーをバックアップします。

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned 

#Part 1 
Copy-Item -Path "\\Server3\Example Location" -Destination "\\Server3\Example Location_$(get-date -f yyyyMMdd)" -Recurse 

#Part 2 
Copy-Item -Path "\\Server2\Example Location" -Destination "\\Server2\Example Location_$(get-date -f yyyyMMdd)" -Recurse 

それは、以下の環境で完全に両方の部分を実行します:私はリモートでサーバ2と右クリックに接続するとPowerShellの

  • 、遠隔Iで実行します>私のローカルPC上で

    • サーバー2に接続し、スクリプトを実行します。

    ただし、これを自動化してSQL Seを作成しようとするとrver Agent Job(再びServer 2上)のみパート2が実際にバックアップします。ジョブは正常に完了しましたが、パート1は無視されます(つまり、サーバー2で実行中、サーバー3でバックアップ中)。

    SQLジョブとして実行すると、これはなぜですか?

    n.b.ジョブは「SQL Serverエージェントサービスアカウント」として実行されるように設定されています。

  • +0

    サービス代理店アカウントがサーバー3のフォルダにアクセスできない可能性がありますか? –

    +0

    ジョブを実行しているユーザーは\\ Server3の権限を持っていますか? – M84

    答えて

    0

    カップルの事...

    あなたがステップタイプのオペレーティングシステム(のCmdExec)として、あなたのPSスクリプトを実行すると、エラー・メッセージが表示されることはありませんが、SQL-Serverの仕事に戻りました。

    SQL Serverエージェントサービスアカウントが\ Server3 ...フォルダにアクセスできない場合、コピーは失敗し、上記のようにエラーメッセージは呼び出し元のSQL-エージェントジョブ。

    関連する問題