豆子最近有个新的项目 需要迁移500多个GSuite的账号到 Office365里面。PowerShell Gallery已经提供了相关的Gsuite 的模块进行下载。但是Google Admin初始化的配置比Office365 麻烦多了,而且网上的wiki资料过时了,界面完全对应不上。

官网说明,但是这个资料是去年更新的,界面很多地方都对不上号了
https://psgsuite.io/

下面看看如何实现。

首先下载PS的模块,微软半年前升级他的安全标准之后,PS5 默认的 Tls1 已经不支持了,因此我需要手动指定安全协议是 tls2

Powershell管理 GSuite 系统

登陆 Google API

Powershell管理 GSuite 系统_第1张图片

根据提示下一步

Powershell管理 GSuite 系统_第2张图片

选择 service account

Powershell管理 GSuite 系统_第3张图片

创建新的 service account
Powershell管理 GSuite 系统_第4张图片

输入相关信息

Powershell管理 GSuite 系统_第5张图片

Role 选择 Owner
Powershell管理 GSuite 系统_第6张图片

Done
Powershell管理 GSuite 系统_第7张图片

Add Key
Powershell管理 GSuite 系统_第8张图片

选择 P12的格式下载
Powershell管理 GSuite 系统_第9张图片

记录一下账号

Powershell管理 GSuite 系统_第10张图片

Enable service account
Powershell管理 GSuite 系统_第11张图片

然后去 GSuite 的 Security 里面 添加一个新的app
Powershell管理 GSuite 系统_第12张图片

然后在 SSO里面查看一下customer id

Powershell管理 GSuite 系统_第13张图片

最后连接一下
Powershell管理 GSuite 系统_第14张图片

测试一下

$groups=Get-GSGroup 
foreach($group in $groups){
    #$group | select
    $email=$group.Email
    write-host $name -ForegroundColor Cyan
    Get-GSGroupMember -Identity $email | select Group, Email, kind, status | ft -AutoSize
}

$users=Get-GSUser -Filter *

$users | measure

$date=(get-date).AddDays(-30)

$demo=$users | Where-Object {$_.LastLoginTime -lt $date} 

$demo | select user,creationtime, lastlogintime | sort lastlogintime -Descending

Powershell管理 GSuite 系统_第15张图片