- PR -

サーバの共有一覧の取得について

1
投稿者投稿内容
ani_0range
会議室デビュー日: 2008/02/15
投稿数: 3
投稿日時: 2008-02-15 15:41
はじめまして。

サーバの共有一覧を取得するアプリを作成していますが
クライアント:XP
サーバ:VISTA
の場合にアクセス拒否されます。

VISTAのUACを無効にすれば再現しませんが
UAC有効のまま動作させたいです。
どなたかご教授のほどお願いします。

ソースは以下になっています。
「Microsoft Visual C# 2005」です。

----------------
ConnectionOptions options = new ConnectionOptions();
options.Username = hostName + @"\\" + ADM_USER;
options.Password = ADM_PASS;

string mPath = @"\\" + shareSvr + @"\root\cimv2";
scope = new ManagementScope(mPath, options);
scope.Connect();

ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT * FROM Win32_Share"));
ManagementObjectCollection collection = searcher.Get();
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-02-15 22:59
そのアプリケーションを、右クリックしたコンテキストメニューの「管理者として実行」から実行するとどうなりますか?
それでいけるなら、マニフェストに管理者資格が必要なことを記入する。
ani_0range
会議室デビュー日: 2008/02/15
投稿数: 3
投稿日時: 2008-02-18 09:15
Jittaさん返信ありがとうございます。

XPでアプリケーションを実行しているので
「管理者として実行」のコンテキストメニューがありませんが
管理者権限のあるユーザで実行しても以下のエラーが発生します。

----------------
System.UnauthorizedAccessException: アクセスが拒否されました。(HRESULTからの例外: 0x80070005(E_ACCESSDENIED))
 場所 System.Management.ManagementScope.Initialize()
 場所 System.Management.ManagementScope.Connect()
----------------

念のため、マニフェストを作成して実行しましたが
動作結果に変わりがありませんでした。
ani_0range
会議室デビュー日: 2008/02/15
投稿数: 3
投稿日時: 2008-02-18 12:27
別の掲示板で回答がありましたので掲載します。

実装環境はワークグループなので
解決方法はUAC解除だそうです。

WMIは使用せず、NetShareEnum使用に方向転換します。

----------------
domain adminだと成功するかと思います。そのためにはドメインを組む必要がありますが…
ワークグループ構成で解決したい場合は、MSDNによるとUACを解除してください、だそうです。
http://msdn2.microsoft.com/en-us/library/aa826699.aspx#handling_remote_connections_under_uac
----------------

1

スキルアップ/キャリアアップ(JOB@IT)