C#操作AD及Exchange Server總結(二)

來源:互聯網
上載者:User

標籤:

C#操作AD及Exchange Server總結(二)

上一節C#操作AD及Exchange Server總結(一)寫了對AD的操作,建立AD使用者後,通常都需要為此使用者開啟Exchange郵箱,接下來寫如何遠程操作Exchange。

三、對Exchange Server操作

操作exchange會用到新的DLL,需要安裝Windows power shell,安裝後在路徑:C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0(測試機為64位)下找到 System.Management.Automation.dll,在項目中引入。

1、為AD使用者建立郵箱

上一節我們在AD中加入並啟用了一個使用者Employee01,下面我們繼續在上一節建立的項目中編寫代碼,為該使用者開啟郵箱。

建立一個ExchangeMange.cs檔案,添加下面的方法:

public void AddExchangeUser(string identity, string alias)        {            string runasUsername = @"contoso\管理員帳號";            string runasPassword = "管理員密碼";            SecureString ssRunasPassword = new SecureString();            foreach (char x in runasPassword)            {                ssRunasPassword.AppendChar(x);            }            PSCredential credentials =                new PSCredential(runasUsername, ssRunasPassword);            var connInfo = new WSManConnectionInfo(new Uri("http://exchange伺服器IP/PowerShell"),                "http://schemas.microsoft.com/powershell/Microsoft.Exchange",                credentials);            connInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;            var runspace = RunspaceFactory.CreateRunspace(connInfo);            var command = new Command("Enable-Mailbox");            command.Parameters.Add("Identity", identity);            command.Parameters.Add("Alias", alias);            runspace.Open();            var pipeline = runspace.CreatePipeline();            pipeline.Commands.Add(command);            var results = pipeline.Invoke();            Console.WriteLine("通道錯誤數:" + pipeline.Error.Count);            runspace.Dispose();        }

代碼解釋:

  • 首先需要產生管理員憑據,此管理員必須有管理exchange伺服器的許可權
  • 產生一個連線類型,傳入exchange伺服器IP、將要使用的Scheme以及管理員憑據
  • 開啟一個命令空間,建立管線通道,傳入要啟動並執行powershell命令,執行命令
  • 釋放串連資源

這段代碼對應的powershell命令相當於本地啟動並執行“Enable-Mailbox -Identity ‘rzh.com/CompanyA/Employee01‘ -Alias ‘Employee01‘”

編寫測試代碼:

static void Main(string[] args)        {            ExchangeMange manage = new ExchangeMange();            Console.WriteLine("Start to enable user maibox...");            try            {                manage.AddExchangeUser("[email protected]", "Employee01");            }            catch (System.Management.Automation.RuntimeException ex)            {                Console.WriteLine("enable user maibox error...");                Console.WriteLine(ex);                Console.ReadLine();            }            Console.WriteLine("Finish to enable user maibox...");            Console.ReadLine();        }

此時運行代碼會報出下面的錯誤

錯誤資訊很詳細,說明了出錯的原因,伺服器不支援用戶端請求的身分識別驗證機制。

需要對用戶端和伺服器端進行一些配置。

2、配置用戶端和伺服器

用戶端配置:

運行gpedit.msc進入本機群組策略管理器,電腦配置》管理模版》Windows組件》WinRM》WinRM用戶端

啟用允許為加密通訊,啟用受信任的主機並添加exchange伺服器IP地址到TrustedHostsList

伺服器端配置:

啟用IIS基本驗證

SSL設定中不要求SSL

再次運行代碼

用以上樣本可以看到如何利用System.Management.Automation的類型和方法對Exchange進行操作的整個過程,其他的 操作唯一不同的就是command命令,只要我們知道Powershell的命令,就可以替換上面代碼中的Command段,進行操作。

三、總結歸納

1、AD操作總結

  • 瞭解DirectoryEntry類型
  • 學會建立AD各種類型的方法
  • 學會設定AD類型的屬性

2、Exchange操作總結

  • 瞭解System.Management.Automation下的類型和方法
  • 配置用戶端和伺服器端
  • 掌握powershell命令

這是我自己的一些小總結,希望對讀者有所協助

C#操作AD及Exchange Server總結(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.