您的位置:首页 > 运维架构 > Shell

使用PowerShell deprovision O365 资源

2018-02-08 15:24 246 查看
再来分享一些自己写的小脚本哈,有些时候经常会需要使用自己的O365的账号做一些测试,为了能让测试的环境更真实,更贴近生产环境,很多时候我会用脚本去创建一些用户,然后生成一些邮件,日历或者是其他的数据,测试完成后这些用户和数据都是需要处理掉的,如果不把使用了自定义域的用户和组等都删掉,那么域名就没办法清除掉,手动删除这些数据当然是可以的,但是为了方便起见,其实可以用一些脚本直接将O365里的用户和组全部清除掉。自己写个简单的脚本就可以完成了,当然对于Global admin来说,这个当然不能随便删了

以下是脚本的内容,运行之前需要先安装MS Online Module

try
{
$Error.clear()
Write-Host "$(Get-Date) * Deprovision users.."
$Users = Get-MsolUser -All -ErrorAction Stop
$Users | %{
$Role = Get-MsolUserRole -UserPrincipalName $_.UserPrincipalName
#排除Global Admin
if (($Role -eq $null) -or ($Role.ObjectId -ne "62e90394-69f5-4237-9190-012177145e10"))
{
Remove-MsolUser -UserPrincipalName $_.UserPrincipalName -Force -ErrorAction Stop
Write-Host "$(Get-Date) * $($_.UserPrincipalName) removed.."
}

}

Start-Sleep 1

#从回收站删除用户
Get-MsolUser -ReturnDeletedUsers -ErrorAction Stop | Remove-MsolUser -RemoveFromRecycleBin -Force -ErrorAction Stop

Write-Host "$(Get-Date) * Done. Users already deleted"

Start-Sleep 1

Write-Host "$(Get-Date) * Deprovision Groups.."

Get-MsolGroup -ErrorAction Stop | Remove-MsolGroup -Force -ErrorAction Stop

Write-Host "$(Get-Date) * Done. Groups already deleted"

}
catch
{
Write-Warning $Error[0].Exception.Message

}

脚本相当简单,基本上都能看懂,对于实验环境来说,还是比较好用的。当然如果说有一些exchange online里的联系人或者其他数据,想要自动清除掉,还需要使用exchange online的module,这个就不一一介绍了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  O365 Office 用户