ابحث عن المستخدمين غير النشطين وإزالتهم في مجال مساحة عمل Google

يمكنك استخدام برنامج Google Apps Script للعثور على جميع حسابات المستخدمين غير النشطين في مجال مساحة عمل Google. سيجد البرنامج النصي جميع المستخدمين الذين لم يسجلوا الدخول إلى المجال لفترة من الوقت (على سبيل المثال 6 أشهر). لديك أيضًا خيار حذف الحسابات النائمة من مجال مساحة العمل وتوفير الفواتير الشهرية الخاصة بك.
ابحث عن المستخدمين غير النشطين في مجال مساحة عمل Google
يمكننا استخدام خدمة دليل المشرف في برنامج Apps Script لسرد جميع المستخدمين (النشطين وغير النشطين) في مجال مساحة عمل Google. افتح نصًا جديدًا ، انتقل إلى قسم الخدمة وقم بتمكين خدمة دليل المشرف.
بعد ذلك ، انتقل إلى مشروع Google Cloud المرتبط بمشروع Script Apps الخاص بك. قم بالتبديل إلى قسم المكتبة ، والبحث عن 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}`);
});
}
};




