DOBON.NET DOBON.NETプログラミング掲示板過去ログ

WMIを使用して別サーバのEXEを実行したとき、そこからファイル共有が参照できない問題

環境/言語:[.NET Framework2.0/Console Application]
分類:[.NET]

こんにちは。アべです。

あるサーバ1から別のサーバのEXEを実行し、そのEXEから
別のサーバの共有を見に行くとアクセスエラーが発生します。

思いとしては、EXEの実行を管理者権限で実行しているので、
問題なく別のサーバの共有を見れると思うのですが、
なぜかエラーになってしまい、困っております。

どなたか、アドバイス、試したほうが用意ことなどありましたら、
ご連絡頂ければと思います。


 Server1     Server2
 −−−−−−−−−−−−−−−−−
 EXE1  ⇒WMI※⇒ EXE2
       ↓
       EXE2は、Server1の共有を見に行く。


 ※:Win32_Processクラスを使ってAdministrator権限で、
  EXE1を実行しています。

 条件:Server1とServer2のAdministrator権限は
  同じパスワードです。

 調べて分かったこと
  ・EXE2を直接起動すると動作する。
  ・EXE2は、Server1の共有へファイルを
   コピーしようとするとエラーになる
   エラーは下記のエラー

 下記は上記のフローでExe2を実行したときに発生するExceptionです。(FileCopy.exe内で出力)

  System.UnauthorizedAccessException: パス '\\Server1\Share' へのアクセスが拒否されました。
   場所 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   場所 System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity)
   場所 System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity)
   場所 Microsoft.VisualBasic.FileIO.FileSystem.CopyOrMoveFile(CopyOrMove operation, String sourceFileName, String destinationFileName, Boolean overwrite, UIOptionInternal showUI, UICancelOption onUserCancel)
   場所 Microsoft.VisualBasic.FileIO.FileSystem.MoveFile(String sourceFileName, String destinationFileName)
   場所 FileCopy.FileCopy.Main(String[] args)

以上
解決しました。

手順は下記の通り
1)ActiveDirectoryの [コンピュータを委任に対して信頼する] にチェックを入れ
2)コード上ではkerberos 認証を指定して
ConnectionのImpersonationプロパティにImpersonationLevel.Delegateを指定したら
動きました。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板