2016-05-11 7 views
0

いくつかのAnalysis Servicesキューブを同期させるためにC#コードを書きました。 この同期の段階の1つは、ASサーバーのフォルダを別のフォルダにコピーすることです。
同期は第3のホストから実行できるので、ダブルホップがあります。C#WMIマルチホップ

ホストAからサーバーBのWSIプロトコルを使用してASソースに接続するフォルダをコピーするには、サーバーBでrobocopyをリモート実行して、ソースBからフォルダをコピーします。宛先サーバーCに送信します。
問題は、robocopyが実行されると、接続に元の資格情報がなく、宛先サーバーに書き込む権限がないことです。私はANONYMOUS LOGONユーザーがアクションを実行するために使用されていると思うので、テスト目的のためにシェアCの書き込み権を割り当てたが、robocopyはERROR 5(0x00000005)で失敗する。

Net diagram

あり、この二重のホップを実行する方法はありますか私は、ホストAを使用してのアイデアを残していますか?

+0

これは実際にプログラミングに関する質問ではありません。 http://superuser.com/の方が良いかもしれません。唯一のC#要素は謎の* C#コードです。 – Liam

答えて

1

@Liamが正しいです。これはプログラミング上の問題の一部にすぎません。大きな問題は、2番目のホップ(AからBへのCへの接続)がADで有効になることをdelegationが必要とすることです。 delegation settingsが正しくなると、SWbemLocater.ConnectServerコールでユーザ名とパスワードを指定する必要があるため、プログラミング上の問題になりますが、それは本当に簡単な部分です。


PS - あなたがスケジュールされたタスクとしてのrobocopyを設定した場合、その後からリモートでスケジュールされたタスクを実行するものを考えた後...として?私はスケジュールされたタスクがタスクに設定されている権限で実行されているので回避できると思うので、は技術的にはです。セカンドホップはありません。


PPS - これが機能することを確認できます。 Bにスケジュールされたタスクを作成し、Cにコピーします。両方のマシンで権限のある資格情報を使用するようにしてください。それから、AからBのスケジュールされたタスクを実行して、データをCにコピーします。これにより、委任の問題が回避されます。