You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS CLI在Windows中删除Cognito用户池含@mailinator.com的用户

删除AWS Cognito中@mailinator.com域名的用户(Windows环境AWS CLI方案)

AWS Cognito的list-users接口确实不支持正则直接筛选用户,我们可以通过导出全量用户→筛选目标用户→批量删除的流程来解决,以下是具体步骤:

步骤1:导出所有用户到JSON文件

由于list-users默认最多返回60条数据,需处理分页获取全量用户。用PowerShell执行以下脚本(替换USER_POOL_ID为你的用户池ID):

$nextToken = $null
$allUsers = @()

do {
    if ($nextToken) {
        $response = aws cognito-idp list-users --user-pool-id "USER_POOL_ID" --next-token $nextToken | ConvertFrom-Json
    } else {
        $response = aws cognito-idp list-users --user-pool-id "USER_POOL_ID" | ConvertFrom-Json
    }
    $allUsers += $response.Users
    $nextToken = $response.NextToken
} while ($nextToken)

$allUsers | ConvertTo-Json -Depth 10 | Out-File -FilePath "cognito_users.json" -Encoding UTF8

步骤2:筛选目标用户并提取用户名

从导出的JSON中筛选邮箱后缀为@mailinator.com的用户,提取其Username保存到文本文件:

$users = Get-Content -Path "cognito_users.json" | ConvertFrom-Json
$targetUsernames = $users | Where-Object {
    $_.Attributes | Where-Object { $_.Name -eq "email" -and $_.Value.EndsWith("@mailinator.com") }
} | Select-Object -ExpandProperty Username

$targetUsernames | Out-File -FilePath "target_usernames.txt" -Encoding UTF8

步骤3:批量删除目标用户

循环读取目标用户名文件,逐个调用删除接口(替换USER_POOL_ID):

$usernames = Get-Content -Path "target_usernames.txt"

foreach ($username in $usernames) {
    Write-Host "Deleting user: $username"
    aws cognito-idp admin-delete-user --user-pool-id "USER_POOL_ID" --username $username
}

注意事项

  • 确保AWS CLI已配置足够权限:需拥有cognito-idp:ListUsers和cognito-idp:AdminDeleteUser权限
  • 删除前务必核对target_usernames.txt中的内容,避免误删合法用户
  • 大用户池的导出和删除过程耗时较长,请保持终端会话稳定

内容的提问来源于stack exchange,提问作者Murtaza Mandvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:55:49