真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java實(shí)現(xiàn)創(chuàng)建outlook郵箱賬號(hào)

現(xiàn)在我們開始。。。。。。話說從研究這個(gè)功能到實(shí)現(xiàn)它前后大致花了一周的時(shí)間,畢竟用Java實(shí)現(xiàn)這個(gè)不是一件簡(jiǎn)單的事情,誰(shuí)讓EXCHANGE和.NET更親呢。一開始想了兩個(gè)方案:

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),鄒平企業(yè)網(wǎng)站建設(shè),鄒平品牌網(wǎng)站建設(shè),網(wǎng)站定制,鄒平網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,鄒平網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。交給.NET團(tuán)隊(duì)開發(fā),最終包裝個(gè)接口出來。服務(wù)器安裝PowerShell on Linux,遠(yuǎn)程調(diào)用PowerShell操作EXCHANGE。第一個(gè)方案轉(zhuǎn)瞬即逝,不要問我為什么!那就第二個(gè)方案唄,拉來運(yùn)維團(tuán)隊(duì)的同學(xué)幫忙搞一下,結(jié)果centos6真心裝不上,各種包不支持,還把測(cè)試服務(wù)器裝掛了。得出的結(jié)論是只有centos7以上才能安裝完美運(yùn)行,算了,完美放棄。Linux不行,咱就放在windows服務(wù)器吧,畢竟PowerShell是微軟親兒子啊。于是就有了最終的解決方案:Java+SSH2+PowerShell,具體的想法是Java環(huán)境下通過SSH2連接上遠(yuǎn)程的windows服務(wù)器,進(jìn)入特定目錄下執(zhí)行PowerShell腳本創(chuàng)建郵箱。

至于SSH2和PowerShell是啥,這里就不重復(fù)敘述了,感興趣的同學(xué)可以百度了解下。

PowerShell學(xué)習(xí)資料地址:http://www.pstips.net/powershell-online-tutorials/

下面直接上步驟吧

1:SSH2連接遠(yuǎn)程服務(wù)器

這個(gè)很簡(jiǎn)單,下載freesshd軟件,按照教程安裝就行,安裝完成之后使用putty工具連接測(cè)試。

freesshd下載地址:

http://www.freesshd.com/?ctt=download

freesshd安裝參考百度經(jīng)驗(yàn)的文章:

https://jingyan.baidu.com/article/f7ff0bfc1ebd322e27bb1344.html

putty安裝地址:

https://pan.baidu.com/s/1dG1L1F7密碼:gwou

putty測(cè)試連接成功后,可以編寫Java代碼連接了,該過程需要ganymed-ssh2-build210.jar的支持,所以需要添加maven坐標(biāo)

ch.ethz.ganymed ganymed-ssh2 262

連接代碼案例

import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.Session;

/** * ssh登錄遠(yuǎn)程服務(wù)器 * @return */ public boolean login(){ boolean result = false; try { conn = new Connection(ip,port); conn.connect();//連接 if(!conn.authenticateWithPassword(userName, userPwd)){ logger.error("通過SSH2登錄OUTLOOK郵件服務(wù)器錯(cuò)誤,驗(yàn)證失敗"); conn.close(); return result; } result = true; } catch (IOException e) { logger.error("通過SSH2登錄OUTLOOK郵件服務(wù)器異常",e); } return result; } /** * 退出遠(yuǎn)程服務(wù)器 * @return */ public void exitConnect(){ if(conn != null){ conn.close(); } }2:Powershell腳本編寫與測(cè)試

這邊提供一個(gè)get-mailbox方法的腳本getEmail.ps1,用于獲取員工的郵箱信息

set-executionpolicy remotesigned $user = $args[0] $password = ConvertTo-SecureString -String $args[1] -AsPlainText -Force $credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $user,$password $session = New-PSSession -Authentication Kerberos -Credential $credential -ConfigurationName microsoft.exchange -ConnectionUri http://XXXXXXXX(你的郵件服務(wù)器)/powershell Import-PSSession $session get-mailbox $args[2]
$args[i]代表給PS腳本傳遞的參數(shù),$args[0]是outlook管理員的用戶名,$args[1]是管理員登錄的密碼,$args[2]是需要查詢的AD賬號(hào)。

測(cè)試案例:

測(cè)試結(jié)果:

接下來只要將PS腳本中的get-mailbox $args[2]方法替換成Enable-Mailbox $args[2] -Database $args[3]就行,$args[2]代表員工的AD賬號(hào),$args[3]代表員工的郵箱創(chuàng)建在哪個(gè)數(shù)據(jù)庫(kù)中。

3:Java通過ssh2調(diào)用命令執(zhí)行PowerShell腳本
獲取遠(yuǎn)程連接的session,執(zhí)行腳本方法。
方法傳遞兩個(gè)參數(shù),第一個(gè)參數(shù)是PowerShell腳本在windows服務(wù)器硬盤中的絕對(duì)路徑,第二個(gè)參數(shù)是傳遞給PowerShell腳本的參數(shù),格式為從前到后依次傳遞,例如"arg1 arg2 arg3 arg4"。

/** * 執(zhí)行遠(yuǎn)程服務(wù)器上的PowerShell腳本 * @param powerShellFile powerShell的腳本文件 * @param powerShellParams powerShell的腳本文件的參數(shù) * @return session對(duì)象,包含返回結(jié)果 */ public Session executePowerShell(String powerShellFile,String powerShellParams){ Session session = null; String command = "cmd /c C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe "+powerShellFile + " " + powerShellParams; try{ if(login()){ session = conn.openSession(); session.execCommand(command); } }catch (IOException e){ logger.error("執(zhí)行遠(yuǎn)程服務(wù)器上的PowerShell腳本異常,腳本地址:"+powerShellFile,e); } return session; }

方法返回一個(gè)ch.ethz.ssh2.Session對(duì)象,我們可以從這個(gè)對(duì)象中獲取執(zhí)行命令返回的信息。

session = outLookOperationService.executePowerShell(powerShellFile,powerShellParams); //等待1分鐘處理時(shí)間,1分鐘后取值 Thread.sleep(60000); InputStream stdout = session.getStdout(); BufferedReader br = new BufferedReader(new InputStreamReader(stdout)); StringBuilder sb = new StringBuilder(); //關(guān)閉遠(yuǎn)程連接 outLookOperationService.exitSession(session); session = null; while(true) { String line = br.readLine(); if(line == null){ break; } System.out.println(line); sb.append(line + "n"); }

獲取到返回結(jié)果,就可以判斷郵箱創(chuàng)建是否成功,以及做一些日志等功能了。


分享文章:Java實(shí)現(xiàn)創(chuàng)建outlook郵箱賬號(hào)
鏈接地址:http://weahome.cn/article/cjgihi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部