2013-05-14 19 views
5

http://msdn.microsoft.com/en-us/library/system.management.connectionoptions.aspxこれはManagementScopeのバグですか?

ConnectionOptions co = new ConnectionOptions(); 
co.Username = CreateUserName(Domain, Username); 

私はこのようなManagementScopeと一緒に前のコードを使用している場合:

ManagementScope ms = new ManagementScope("\\\\" + PcName + "\\root\\cimv2:Win32_Service='RpcSs'", co); 
ms.Connect(); 

しかし、私は間違ったドメインを使用している場合、それはまだ動作しますか?これをどのように修正するべきですか?なぜこうなった?

編集1:リモートマシンにアクセスしようとすると、不正なドメインと正しい管理者アカウントと正しいパスワードが許可されます。これは、自分のマシン以外の資格情報やその他のドメインを持つ可能性があります。

編集2:私の場合、悪いドメインとは、現在のユーザーが入力したマシンまたは他のドメインに存在しないドメインを意味します。

編集3: 私はこのコードを使用している場合でも:

options.Authority = "ntlmdomain:DOMAIN";//this won't work either. 

http://msdn.microsoft.com/en-us/library/system.management.connectionoptions.authority.aspx

+0

なぜですか?あなたが "\\ pc-of-my-boss \ documents"に接続しようとすると、ローカルユーザー、ドメイン、またはターゲットコンピュータに許可されているものの資格情報を入力するよう求められます。間違った資格情報を入力した場合、単にログインすることはできません。 –

+0

はい、ただし、資格情報(特にドメインが間違っていても)を再起動するようなことはたくさんあります。 –

+0

いいえ、あなたは(そのマシンでの彼の権利に従って)そのユーザーが(特にドメイン内で)どんなポリシーが許可するものを引いたものを超えることはできません。 –

答えて

1

をWbemTestのは、WMIがどのように動作するかを知るための規格です。 (Floradu88、5月15日@)あなたのコメントへの対応:

1)WbemTestのは、リモート接続に失敗した)(無効なドメインを無効な資格情報を渡すときに

もちろん、予想される動作です

2)ローカル接続のためのWbemTestのはこれがトンを持っていないかもしれないように見えます「のみ資格情報なし」

の作品ManagementScopeConnectionOptionsのドキュメントにアップrickled、しかし:

ローカルコンピュータに接続するときに、資格情報を変更することはできません。
(MSDN:WMI Tasks: Connecting to the WMI Service

備考
ローカル名前空間への接続を行う際strUser、strPassword、またはstrAuthorityを指定しないでください。
(MSDN:IWbemLocator::ConnectServer)あなたの元の質問について


、あなたはWbemTestのは予想どおりに動作していると述べているので、我々はWMIが「作業」していることを知っていて、それがターゲットのようなエッジケースの問題ではありませんマシンは匿名接続を受け入れるように構成されています。

C#WMI接続が、指定された(無効な)資格情報ではなく、呼び出し元の資格情報を使用している可能性があります。同じコードを実行してみてください。今回は、リモートマシン上にアカウントが存在しないローカルマシン上のユーザーとして実行してください。それが失敗した場合は、必要な明示的な資格情報の代わりに呼び出し元の資格情報が使用されていたことを意味します。これが発生した場合、リモートマシンに接続するときに手動で指定された資格情報を偽装するための呼び出しの実装にエラーが発生する可能性があります。

関連する問題