利用powershell管理office365

今天在公司的生產環境中有個需要用到powershell批量檢查office365用戶的操作,所以在這邊順便記錄的powershell連接office365的過程:

 

在連接之前,需要安裝兩個工具:1Office 365 Sign-In Assistanthttp://www.microsoft.com/en-us/download/details.aspx?id=28177

2. Office 365Powershell  http://technet.microsoft.com/library/jj151815.aspx


wKioL1SEBvig4zjAAAEYHCQ9GEM776.jpg

wKiom1SEBmfSeJBSAAEX4kY5ERE979.jpg


安裝完成之後。使用管理員身份運行windows powershell(若不以管理員身份運行,則後續的命令執行後會報錯!)

啓動之後,首先確定ps是否配置爲運行腳本。輸入:Get-ExecutionPolicy

若已配置,則應該如下圖顯示:

若沒有配置,則應該首先配置爲運行腳本,輸入:Set-ExecutionPolicy RemoteSigned

 

wKioL1SEBxLw85OfAAJvpJ5hOOY893.jpg

 

確定之後,創建ps憑據對象:$credential = Get-Credential

執行之後,則會彈出一個對話框,輸入office365的賬號名和密碼(必須要有全局管理員權限)

點擊確定之後,將不會有任何提示。若想確定是否登錄成功,可以執行$credential,可以看到類似如下圖的返回結果

wKiom1SEBp_Qysg7AAFjqGFFL7o228.jpg

此時,請注意,Get-Credential cmdlet 只創建憑據對象,並不對您進行身份驗證,也不驗證您提供的用戶名和密碼是否正確。例如,假設您將用戶名錯誤鍵入爲“[email protected]”。如果確實如此,則 Get-Credential 將使用該用戶名創建憑據對象,並不會檢查該用戶名是否有效。在您真正使用憑據對象嘗試連接到 Office 365 之前,您不會知道自己創建的憑據對象是否真的有效。

下面連接到office365

首先需要導入office365模塊

Import-Module MsOnline
輸入Get-Module進行查詢
 

wKioL1SECZOhsbUXAAJW1UScSKI680.jpg

 

用上面創建的憑據對象連接到office365

Connect-MsolService -Credential $credential

 

連接完成之後,輸入Get-MsolDomain 利用返回結果驗證是否連接成功

wKioL1SEDOaiO7hxAAOI0QeZ6Xc863.jpg

 

這一步連接成功之後,就可以按照需要連接sharepoint online/lynconline/exchange online

可參考:http://technet.microsoft.com/zh-CN/library/dn568015.aspx

今天因爲需要,需要連接到exchange online

創建遠程psexchange online的會話

$exchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $credential -Authentication "Basic" -AllowRedirection

在這一步執行的時候報了一個錯誤,後來確定了一下,上條命令中:https://outlook.office365.com的地址爲全球版office365exchange online的地址,而我的產品訂閱的爲世紀互聯運營的中國版的office365,所以需要將上述地址替換爲:https://partner.outlook.cn

wKiom1SEDHTA42E1AAUtLCwYGkw389.jpg

 

執行之後,導入遠程會話:Import-PSSession $exchangeSession

wKiom1SEDJ3xjDmXAAXwyEiubEE929.jpg

若運行正常,則可以看到以下命令

wKioL1SEDhjBictmAAKwTJNKWGc976.jpg


運行以下命令:Get-AcceptedDomain

若返回以下,則表示連接成功,可以進行管理了

wKiom1SEDa3AGv6rAAGdi9BLm0A248.jpg

 

本次需求是已經利用exchange online的管理界面創建了很多通訊組(包含通訊組和動態通訊組),查詢某一動態通訊組成員。

例如:查詢系統服務部的成員

$DDG = Get-DynamicDistributionGroup 系統服務部

Get-Recipient -RecipientPreviewFilter $DDG.RecipientFilter

PS:第一個命令使用 $DDG 變量存儲動態通訊組對象,第二個命令使用 Get-Recipient cmdlet 來列出符合爲動態通訊組定義的條件的收件人。

wKioL1SEDm3CgjV9AAFrJrZ1V9o091.jpg

從返回結果中查詢到有部分人員並沒有包含在系統服務部中,按照規則,應該是部門選項卡爲添加具體值,那麼在企業中肯定有類似的用戶缺少部門選項卡的值,我們首先來查看下哪些用戶的部門值爲空

wKioL1SEDnuQHvK-AAGTzfsKfSg817.jpg

在網頁管理中爲缺少該值的用戶添加之後,確認,修改完成。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章