WMIのリモート機能で別マシンのファイルを移動させたい。
- 題名: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 灰猫
- 日時: 2006/05/23 18:18:48
- ID: 15926
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 渋木宏明(ひどり)
- URL: http://hidori.jp/
- 日時: 2006/05/23 18:40:18
- ID: 15928
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 灰猫
- 日時: 2006/05/24 9:13:16
- ID: 15939
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 渋木宏明(ひどり)
- URL: http://hidori.jp/
- 日時: 2006/05/24 9:47:13
- ID: 15941
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 灰猫
- 日時: 2006/05/24 9:59:28
- ID: 15942
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 渋木宏明(ひどり)
- URL: http://hidori.jp/
- 日時: 2006/05/24 10:56:48
- ID: 15944
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 灰猫
- 日時: 2006/05/24 11:14:02
- ID: 15946
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[7]: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 渋木宏明(ひどり)
- URL: http://hidori.jp/
- 日時: 2006/05/24 11:51:09
- ID: 15947
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[8]: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 灰猫
- 日時: 2006/05/24 13:20:08
- ID: 15955
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[9]: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 魔界の仮面弁士
- 日時: 2006/05/24 14:34:19
- ID: 15956
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[10]: WMIのリモート機能で別マシンのファイルを移動させたい。
- 著者: 灰猫
- 日時: 2006/05/24 15:43:22
- ID: 15958
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
はじめまして。
C#でWMIを使用してリモートで別マシンのファイルを移動させる
プログラムを作成しようとしております。
あちこちのサイトやヘルプを参考にファイルの移動を試みている
のですが、「アクセスが拒否されました。」のエラーが出て解決
できずに困っております。
エラーの内容から推測すると、コードが原因ではないような気も
するのですが、経験が浅くてその辺りが分からず、投稿させて頂く
次第となりました。
どなたかご教授をお願い出来ませんでしょうか。
コードとエラー発生時の詳細を以下に記述致します。
コードは以下の通りです。
ConnectionOptions option = new ConnectionOptions();
option.Username = DomainName + "\\" + UserName;
option.Password = UserPass;
ManagementScope scope = new ManagementScope("\\\\" + MachineName + "\\root\\cimv2", option);
ObjectQuery query = new ObjectQuery(
"SELECT * FROM Win32_Directory WHERE Name = '" + FromPath + "'");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection moCollection = searcher.Get();
foreach (ManagementObject mo in moCollection)
{
// 一気に移動できればいいのですが、分からないのでコピー&削除で代用?
// オブジェクトのコピー
mo.CopyTo(ToPath);
// オブジェクトの削除
mo.Delete();
}
以下はエラー発生時の詳細です。
●エラー発生時の状況です。
・プログラムはAサーバー(2003Server)で実行。
・ファイルの移動元はBサーバー(同じく2003Server)の"C:\MoveTest_From"以下の全て
・ファイルの移動先はBサーバーの"C:\MoveTest_To"
・Aサーバー、Bサーバーは同じドメインに所属
●エラーは内容が表示されています。
アクセスが拒否されました。
(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))
エラーに関してはMicroSoftの以下のアドレスを参考に調べてみたのですが、
どれも該当しない(と思われる)ので、はてな状態です。
http://www.microsoft.com/japan/technet/scriptcenter/resources/wmifaq.mspx
●エラーが出ているのは以下のコードの部分です。
ManagementObjectCollection moCollection = searcher.Get();
尚、"MoveTest_From"と"MoveTest_To"のフォルダはプログラム実行時の
ユーザーが所属しているセキュリティグループでフルコントロールの設定
にしています。
(・・・のつもりなのですが、自信がありません。)
以上です。
説明の不足しているところ等が御座いましたらご指摘下さい。
宜しくお願いします。