如何使用PowerShell批量删除Office 365的用户
概述
本文将演示如何在必要的时候(例如在测试环境),通过PowerShell脚本批量删除Office 365的用户,首先需要通过Get-MsolUser的命令(并且配合筛选条件)获取到符合条件的用户列表,然后通过Remove-MsolUser的命令将其删除。
注意,删除操作会将用户放入到回收站,你还可以从回收站中对其进行恢复。但是要恢复相关的邮件,以及OneDrive网站等个人相关数据,可能还需要一定的时间。请慎重操作。
前提
要想运行如上提到的两个命令,需要在Windows 10的机器上面,安装如下的几个组件
1. 下载安装官方提供的Microsoft Online Service Sign-in Assistant for IT Professionals https://go.microsoft.com/fwlink/p/?LinkId=286152
2. 下载安装官方提供的Azure Active Directory Connection http://connect.microsoft.com/site1164/Downloads/DownloadDetails.aspx?DownloadID=59185
3. 请在本地用管理员身份打开PowerShell,并运行命令 Install-Module -Name AzureAD
进行后续操作之前,需要准备好Office 365 管理员账号,并且连接上MsolService,如下图所示

操作
首先,我们来看一下Get-MsolUser这个命令
https://docs.microsoft.com/en-us/powershell/module/msonline/get-msoluser?view=azureadps-1.0
这里的关键在于如何过滤出来我们想要操作的用户,这个命令带有几个有趣的参数
[-City <String>] [-Country <String>] [-Department <String>] [-DomainName <String>] [-EnabledFilter <UserEnabledFilter>][-SearchString <String>]
这些参数都可以用来作为过滤的条件,而且这个过滤是在服务器端发生的。
需要注意的是SearchString,只支持简单的模糊匹配,它会在displayname和alias中做匹配。
有时候,我们可能需要根据用户的创建时间进行筛选。目前没有看到这方面的参数。但可以通过下面的方式来解决
Where-Object {$_.WhenCreated –gt “6/16/2017”}
这个过滤是在本地过滤的,就是把所有用户读取到了本地缓存中,然后再过滤。上述表达式的意思是,找到6/16/2017后创建的用户。

使用$users保存了这个用户列表后,可以进一步操作Remove-MsolUser命令来进行删除
$users | Remove-MsolUser –Force
如何使用PowerShell批量删除Office 365的用户的更多相关文章
- 使用Powershell链接到Office 365
		
今天主要讲使用Powershell管理Office 365 可以分为office365用户管理,Exchange Online的管理等 1. 使用Powershell 链接到office 365 用户 ...
 - 介绍Office 365 中文用户社区 4.0
		
本文于2017年3月18日首发于LinkedIn,原文链接在这里 为了给广大用户提供一个可以自由交流.切磋技术的平台,微软和其他一些国际知名的大型软件公司一样,都有创建用户社区(Community,或 ...
 - SharePoint PowerShell 批量删除遗弃视图
		
前言 最近,给SharePoint升级了,然后发现,有一大批视图不需要了,而且,名字是一样的,想着怎么清理,然后,就想到了powershell. powershell 示例: $siteUrl = & ...
 - 一些Office 365的问题收集
		
1. 按照MS的最佳实践, 应该是先有本地域, 然后再有Office 365. 但是我们公司刚好相反, 于是按照前面的文章做完了硬关联, 但是现在发现对于那些原本就在Office 365上的用户的Pr ...
 - 设置Office 365邮箱默认发送和接收邮件大小限制
		
Office 365默认的 35MB 的邮件大小限制.Office 365 最大是支持 150MB 的邮件体积的. 我们只需用 Windows Powershell 连接 Office 365 ,然后 ...
 - Office 365开发概述及生态环境介绍(二)
		
本文于2017年3月19日首发于LinkedIn,原文链接在这里 在上一篇 文章,我给大家回顾了Office发展过来的一些主要的版本(XP,2003,2007,2013等),以及在Office客户端中 ...
 - 使用Office 365前,企业必须要知道的10件事
		
目前的市场上充斥着很多关于微软Office 365的炒作,相信厂商.客户或者企业的都有自己不同的考虑.Office 365是微软云版本的Office,用户可以通过互联网创建一个帐户,付款.下载应用安装 ...
 - Office 365管理中心门户
		
一.使用Office 365管理员账户登陆到由世纪互联运营的Office 365 登陆地址 https://portal.partner.microsoftonline.cn 1.登陆完成后,选择左上 ...
 - Office 365 系列二 ------- 如何批量部署Office 客户端
		
针对于第一篇文章所讲的,我们最用使用用户可以单个点击进行安装,但是如果我们终端用户太多的情况,不可能大家都点击单个文件进行安装了,这样子既耗费时间也耗费 公司的网络带宽,那么我们可以采取离线下载的方式 ...
 
随机推荐
- Kaldi的BaseLine训练过程
			
steps/train_mono.sh --nj "$train_nj" --cmd "$train_cmd" data/train data/lang exp ...
 - python 的基础 学习   12天,函数
			
1, *args 动态 参数,万能参数 *args就是接受实参对应的剩余的位置参数,并将其放在元组中.在定义函数时,*args代表的是聚合. def func(*args): print(ar ...
 - 如何快速上手一个新技术之vue学习经验
			
碰到紧急项目挪别人的vue项目过来直接改,但是vue是18年初看过一遍,18年底再来用,早就忘到九霄云外了,结果丢脸的从打开vue开始学,虽然之前在有道云笔记做了很多记录,然后没有系统整理.所以借这次 ...
 - 自定义Banner
			
Spring Boot项目启动时,默认的打印样式如下 自定义 在/src/main/resources目录下新建banner.txt,在里面输入要打印的文字即可,例如: 图形制作网站:http://w ...
 - RPO攻击 & share your mind
			
参考文章: https://xz.aliyun.com/t/2220 http://www.thespanner.co.uk/2014/03/21/rpo/ https://www.lorexxar. ...
 - ECharts.js学习(一) 简单入门
			
EChart.js 简单入门 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart 这个是Visual Studio里的自带控件,使用比 ...
 - Python3-join()和split()
			
Python join()方法 Python join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串. #例如:列表 -- 字符串 str.join(sequence) 参数: sequ ...
 - ubuntu server命令行搭建虚拟专用网
			
问题: 在做一个国外的开源项目,需要用到很多 ubuntu 上特定版本的应用,由于国内墙的问题,导致Ubuntu 14.04在需要添加一些国外的库的时候(add-apt-repository ppa: ...
 - Linker Scripts3--简单的链接脚本命令1
			
1.前言 这个部分我们描述了简单的链接脚本命令 2.设置entry point 程序中第一条运行的指令被称为入口点entry point,可以使用ENTRY链接脚本命令设置entry point,参数 ...
 - python 中的exec
			
x = 10 expr = """ z = 30 sum = x + y + z print(sum) """ def func(): y ...