2013-04-03 25 views
5

Tôi đã tìm thấy các hướng dẫn giải thích cách chạy các kịch bản PowerShell trên Exchange Server, nhưng tất cả các hướng dẫn đều yêu cầu máy được kết nối miền và hầu hết dường như sử dụng các cách giải quyết thay vì thực hành tốt nhất.Có hướng dẫn dứt khoát nào để tạo Exchange Mailbox từ xa một cách có lập trình không?

Có cách nào để kết nối từ xa với Máy chủ Exchange bằng cách sử dụng C# .NET hoặc VB.NET không?

Về cơ bản, tôi muốn kết nối với Exchange Server bằng thông tin đăng nhập của quản trị viên (tôi sẽ cung cấp cho họ, mã hóa, trong chương trình) và tạo hộp thư bằng tập lệnh PowerShell. Đó là tất cả.

Tôi muốn khởi động ứng dụng dưới dạng ứng dụng bảng điều khiển và khi tôi xác nhận chức năng tôi có thể triển khai ứng dụng đó trong ứng dụng biểu mẫu web hoặc MVC.

Bất kỳ lời khuyên nào được đánh giá cao!

+2

Tôi đã làm việc với các dịch vụ Exchange EWS nhưng rất tiếc Nó chỉ dành cho dữ liệu và quản lý các hộp thư hiện có không tạo các hộp thư mới. Tôi tìm thấy điều này, mặc dù không chắc chắn nếu nó sẽ giúp đỡ vì nó không phải sở trường của tôi. http://codingchris.com/2012/02/15/creating-exchange-2010-mailboxes-in-c/ – Chris

Trả lời

6

Gần đây tôi phải xử lý vấn đề tương tự, mã bên dưới đã giúp tôi thực hiện chức năng với kết nối an toàn đến máy chủ Exchange từ xa.

Runspace remoteRunspace = null; 
PSCredential psc = null; 
// If user name is not passed used the credentials of the current farm account 
if (!string.IsNullOrWhiteSpace(username)) 
{ 
    if (!string.IsNullOrWhiteSpace(domain)) 
     username = domain + "\\" + username; 
    SecureString secpassword = new SecureString(); 
    if (!string.IsNullOrEmpty(password)) 
    { 
     foreach (char c in password) 
     { 
      secpassword.AppendChar(c); 
     } 
    } 
    psc = new PSCredential(username, secpassword); 
} 

WSManConnectionInfo rri = new WSManConnectionInfo(new Uri(RemotePowerShellUrl), PowerShellSchema, psc); 
if (psc != null) 
    rri.AuthenticationMechanism = AuthenticationMechanism.Credssp; 
remoteRunspace = RunspaceFactory.CreateRunspace(rri); 
remoteRunspace.Open(); 

Pipeline pipeline = remoteRunspace.CreatePipeline(); 
Command cmdSharePointPowershell = new Command(Commands.AddPSSnapin.CommandName); 
cmdSharePointPowershell.Parameters.Add(Commands.AddPSSnapin.Name, MicrosoftSharePointPowerShellSnapIn); 
pipeline.Commands.Add(cmdSharePointPowershell); 
pipeline.Invoke(); 

Tất nhiên bạn sẽ có một số cấu hình thông thường của thành viên nhóm người dùng, cho phép kết nối từ xa an toàn/không an toàn từ xa, v.v. this bài viết có thể hữu ích.

+0

Cảm ơn bạn, điều này đã giúp tôi rất nhiều. Giờ đây tôi có thể kết nối và tạo người dùng từ xa thông qua ứng dụng bảng điều khiển. Tôi sẽ đăng mã ngay. – TimeBomb006

+0

@ TimeBomb006 - rất vui được trợ giúp :) – MuhammadHani