Вы можете использовать скрипт Google Apps, чтобы найти все неактивные учетные записи пользователей в вашем домене Google Workspace. Скрипт найдет всех пользователей, которые не входили в домен в течение определенного периода времени (скажем, 6 месяцев). У вас также есть возможность удалить неактивные учетные записи из домена Workspace и сэкономить на ежемесячных счетах.
Найдите неактивных пользователей в домене Google Workspace
Мы можем использовать службу Admin Directory Apps Script, чтобы составить список всех пользователей (активных и неактивных) в домене Google Workspace. Откройте новый скрипт, перейдите в раздел «Сервис» и включите службу Admin Directory.
Затем перейдите к проекту Google Cloud, связанному с вашим проектом Apps Script. Перейдите в раздел «Библиотека», найдите Admin SDK и включите API. Необходимая область OAuth — https://www.googleapis.com/auth/admin.directory.user
, и она должна быть указана в вашем файле appsscript.json
.
{ "timeZone" : "Asia/Kolkata" , "dependencies" : { "enabledAdvancedServices" : [ { "userSymbol" : "AdminDirectory" , "version" : "directory_v1" , "serviceId" : "admin" } ] } , "exceptionLogging" : "STACKDRIVER" , "oauthScopes" : [ "https://www.googleapis.com/auth/admin.directory.user" ] , "runtimeVersion" : "V8" }
Скрипт выведет список всех пользователей в домене и найдет бездействующие учетные записи на основе даты последнего входа в систему. Если пользователь не заходил в свою учетную запись в течение последних, скажем, 6 месяцев, то он считается неактивным и может быть удален.
const getInactiveAccounts = ( ) => { let accounts = [ ] ; let pageToken = null ; // Replace example.com with your domain name. do { const { users , nextPageToken = null } = AdminDirectory . Users . list ( { domain : 'example.com' , customer : 'my_customer' , maxResults : 100 , orderBy : 'email' , pageToken , } ) ; pageToken = nextPageToken ; accounts = [ ... accounts , ... users ] ; } while ( pageToken !== null ) ; // delete users who haven't logged in the last 6 months const MONTHS = 6 ; const cutOffDate = new Date ( ) ; cutOffDate . setMonth ( cutOffDate . getMonth ( ) - MONTHS ) ; const inactiveAccounts = accounts . filter ( ( { isAdmin } ) => isAdmin === false ) // Skip users with admin priveleges . filter ( ( { lastLoginTime } ) => { const lastLoginDate = new Date ( lastLoginTime ) ; return lastLoginDate < cutOffDate ; } ) . const ( ( { primaryEmail } ) => primaryEmail ) ; // Get only the email address Logger . log ( ` We found ${ inactiveAccounts . length } inactive accounts in the domain. ` ) ; Logger . log ( ` The list is: ${ inactiveAccounts . join ( ', ' ) } ` ) ; // Set this to true if you really want to delete the inactive accounts const DELETE_USER = false ; if ( DELETE_USER ) { // Remove the users from the domain inactiveAccounts . forEach ( ( userEmail ) => { AdminDirectory . Users . remove ( userEmail ) ; Logger . log ( ` Deleted Google Workspace account for ${ userEmail } ` ) ; } ) ; } } ;