2013-05-14 37 views
5

http://msdn.microsoft.com/en-us/library/system.management.connectionoptions.aspxĐây có phải là lỗi hoặc tính năng của ManagementScope không?

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

Nếu tôi sử dụng mã trước đó cùng với ManagementScope như thế này:

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

Nhưng nếu tôi sử dụng tên miền không chính xác nó vẫn hoạt động? Làm thế nào tôi nên sửa lỗi này. Tại sao chuyện này đang xảy ra?

Chỉnh sửa 1: Điều này xảy ra (Tôi được phép có miền xấu và đúng Tài khoản quản trị viên và mật khẩu chính xác) khi tôi cố gắng truy cập máy từ xa, có thể có thông tin xác thực khác và tên miền khác với máy của tôi.

Chỉnh sửa 2: Miền xấu trong trường hợp của tôi có nghĩa là: miền không tồn tại trên máy đó hoặc miền khác mà người dùng hiện tại đã nhập không có mặt.

Sửa 3: Thậm chí nếu tôi sử dụng mã này:

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

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

+0

Tại sao không? Hãy tưởng tượng bạn cố gắng kết nối với "\\ pc-of-my-boss \ documents", bạn sẽ được nhắc nhập thông tin đăng nhập của bạn (chúng có thể dành cho người dùng cục bộ, cho miền hoặc cho bất kỳ thứ gì được phép trên máy tính đích). Nếu bạn cung cấp thông tin đăng nhập sai chỉ đơn giản là bạn sẽ không thể đăng nhập. –

+0

có, nhưng tôi được phép làm một loạt các thứ như khởi động lại ngay cả khi thông tin đăng nhập (đặc biệt là miền sai). –

+0

Không, bạn sẽ không thể làm nhiều hơn những gì mà người dùng có thể làm (theo quyền của mình trên máy mục tiêu) trừ đi những chính sách nào cho phép (đặc biệt là trong các tên miền). –

Trả lời

1

wbemtest là tiêu chuẩn để biết cách cư xử WMI. Phát biểu nhận xét của bạn (@ Floradu88, ngày 15 tháng 5):

1) wbemtest thất bại trên các kết nối từ xa khi đi qua thông tin không hợp lệ (miền không hợp lệ)

Đó là hành vi mong đợi, tất nhiên

2) WbemTest cho kết nối cục bộ hoạt động "chỉ không có thông tin xác thực"

Có vẻ như điều này có thể không có rickled thành tài liệu cho ManagementScopeConnectionOptions, nhưng:

Bạn không thể thay đổi thông tin khi kết nối với máy tính cục bộ.
(MSDN: WMI Tasks: Connecting to the WMI Service)

chú
Không chỉ định strUser, strPassword, hoặc strAuthority khi thực hiện một kết nối đến một không gian tên địa phương.
(MSDN: IWbemLocator::ConnectServer)


Về câu hỏi ban đầu của bạn, bởi vì bạn đã nói rằng wbemtest là hành xử như mong đợi, chúng ta biết rằng WMI được "làm việc" và nó không phải là một trường hợp vấn đề cạnh như mục tiêu máy đã được định cấu hình để chấp nhận các kết nối ẩn danh.

Một khả năng là kết nối C# WMI của bạn đang sử dụng thông tin xác thực của người dùng đang gọi, thay vì thông tin xác thực (không hợp lệ) được chỉ định. Vui lòng thử chạy cùng một mã, nhưng lần này với tư cách là người dùng trên máy cục bộ có tài khoản không tồn tại trên máy từ xa.Nếu điều đó không thành công, điều đó có nghĩa là thông tin đăng nhập của người gọi đã được sử dụng thay cho thông tin xác thực bạn muốn. Mà, nếu nó xảy ra, sẽ đề nghị một lỗi trong việc thực hiện các cuộc gọi để mạo danh các thông tin xác thực được chỉ định bằng tay khi kết nối với máy từ xa.