利用powershell管理office365

今天在公司的生产环境中有个须要用到powershell批量检查office365用户的操做,因此在这边顺便记录的powershell链接office365的过程:shell

 

在链接以前,须要安装两个工具:1Office 365 Sign-In Assistanthttp://www.microsoft.com/en-us/download/details.aspx?id=28177windows

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


wKioL1SEBvig4zjAAAEYHCQ9GEM776.jpg

wKiom1SEBmfSeJBSAAEX4kY5ERE979.jpg


安装完成以后。使用管理员身份运行windows powershell(若不以管理员身份运行,则后续的命令执行后会报错!)工具

启动以后,首先肯定ps是否配置为运行脚本。输入:Get-ExecutionPolicy

若已配置,则应该以下图显示:spa

若没有配置,则应该首先配置为运行脚本,输入:Set-ExecutionPolicy RemoteSigned

 

wKioL1SEBxLw85OfAAJvpJ5hOOY893.jpg

 

肯定以后,建立ps凭据对象:$credential = Get-Credential

执行以后,则会弹出一个对话框,输入office365的帐号名和密码(必需要有全局管理员权限)3d

点击肯定以后,将不会有任何提示。若想肯定是否登陆成功,能够执行$credential,能够看到相似以下图的返回结果

wKiom1SEBp_Qysg7AAFjqGFFL7o228.jpg

此时,请注意,Get-Credential cmdlet 只建立凭据对象,并不对您进行身份验证,也不验证您提供的用户名和密码是否正确。例如,假设您将用户名错误键入为“eknmyer@litwareinc.onmicrosoft.com”。若是确实如此,则 Get-Credential 将使用该用户名建立凭据对象,并不会检查该用户名是否有效。在您真正使用凭据对象尝试链接到 Office 365 以前,您不会知道本身建立的凭据对象是否真的有效。对象

下面链接到office365blog

首先须要导入office365模块ip

Import-Module MsOnline
输入Get-Module进行查询
 

wKioL1SECZOhsbUXAAJW1UScSKI680.jpg

 

用上面建立的凭据对象链接到office365ci

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

在网页管理中为缺乏该值的用户添加以后,确认,修改完成。

相关文章
相关标签/搜索