今天在公司的生产环境中有个需要用到powershell批量检查office365用户的操作,所以在这边顺便记录的powershell连接office365的过程:
在连接之前,需要安装两个工具:1、Office 365 Sign-In Assistanthttp://www.microsoft.com/en-us/download/details.aspx?id=28177
2. Office 365Powershell http://technet.microsoft.com/library/jj151815.aspx
安装完成之后。使用管理员身份运行windows powershell(若不以管理员身份运行,则后续的命令执行后会报错!)
启动之后,首先确定ps是否配置为运行脚本。输入:Get-ExecutionPolicy
若已配置,则应该如下图显示:
若没有配置,则应该首先配置为运行脚本,输入:Set-ExecutionPolicy RemoteSigned
确定之后,创建ps凭据对象:$credential = Get-Credential
执行之后,则会弹出一个对话框,输入office365的账号名和密码(必须要有全局管理员权限)
点击确定之后,将不会有任何提示。若想确定是否登录成功,可以执行$credential,可以看到类似如下图的返回结果
此时,请注意,Get-Credential cmdlet 只创建凭据对象,并不对您进行身份验证,也不验证您提供的用户名和密码是否正确。例如,假设您将用户名错误键入为“eknmyer@litwareinc.onmicrosoft.com”。如果确实如此,则 Get-Credential 将使用该用户名创建凭据对象,并不会检查该用户名是否有效。在您真正使用凭据对象尝试连接到 Office 365 之前,您不会知道自己创建的凭据对象是否真的有效。
下面连接到office365
首先需要导入office365模块
Import-Module MsOnline
输入Get-Module进行查询
用上面创建的凭据对象连接到office365
Connect-MsolService -Credential $credential
连接完成之后,输入Get-MsolDomain 利用返回结果验证是否连接成功
这一步连接成功之后,就可以按照需要连接sharepoint online/lynconline/exchange online
可参考:http://technet.microsoft.com/zh-CN/library/dn568015.aspx
今天因为需要,需要连接到exchange online。
创建远程ps与exchange online的会话
$exchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $credential -Authentication "Basic" -AllowRedirection
在这一步执行的时候报了一个错误,后来确定了一下,上条命令中:https://outlook.office365.com的地址为全球版office365的exchange online的地址,而我的产品订阅的为世纪互联运营的中国版的office365,所以需要将上述地址替换为:https://partner.outlook.cn。
执行之后,导入远程会话:Import-PSSession $exchangeSession
若运行正常,则可以看到以下命令
运行以下命令:Get-AcceptedDomain
若返回以下,则表示连接成功,可以进行管理了
本次需求是已经利用exchange online的管理界面创建了很多通讯组(包含通讯组和动态通讯组),查询某一动态通讯组成员。
例如:查询系统服务部的成员
$DDG = Get-DynamicDistributionGroup 系统服务部
Get-Recipient -RecipientPreviewFilter $DDG.RecipientFilter
PS:第一个命令使用 $DDG 变量存储动态通讯组对象,第二个命令使用 Get-Recipient cmdlet 来列出符合为动态通讯组定义的条件的收件人。
从返回结果中查询到有部分人员并没有包含在系统服务部中,按照规则,应该是部门选项卡为添加具体值,那么在企业中肯定有类似的用户缺少部门选项卡的值,我们首先来查看下哪些用户的部门值为空
在网页管理中为缺少该值的用户添加之后,确认,修改完成。
转载于:https://blog.51cto.com/yamateh/1587287