- - PR -
サーバの共有一覧の取得について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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(); |
|
投稿日時: 2008-02-15 22:59
そのアプリケーションを、右クリックしたコンテキストメニューの「管理者として実行」から実行するとどうなりますか?
それでいけるなら、マニフェストに管理者資格が必要なことを記入する。 |
|
投稿日時: 2008-02-18 09:15
Jittaさん返信ありがとうございます。
XPでアプリケーションを実行しているので 「管理者として実行」のコンテキストメニューがありませんが 管理者権限のあるユーザで実行しても以下のエラーが発生します。 ---------------- System.UnauthorizedAccessException: アクセスが拒否されました。(HRESULTからの例外: 0x80070005(E_ACCESSDENIED)) 場所 System.Management.ManagementScope.Initialize() 場所 System.Management.ManagementScope.Connect() ---------------- 念のため、マニフェストを作成して実行しましたが 動作結果に変わりがありませんでした。 |
|
投稿日時: 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