درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من

پیدا کردن کاربران بلا استفاده در اکتیو دایرکتوری Active Directory

25 نظرات
138 بازدیدها
برای اینکار هم نرم افزار وجود داره و هم میتونی از دستورات خود Active directory استفاده کنی که من توصیه میکنم از دستور DSQuery استفاده کنی که همونجور که از اسمش مشخصه برای Query گرفتن از Active Directory هست :

  • پیدا کردن کاربران غیر فعال در طول مثلا 4 هفته پیش :
  • C:\> dsquery user -inactive 4
    
  • پیدا کردن کاربران غیر فعال در طول مثلا 4 هفته پیش و غیر فعال کردنشون :
  • C:\> dsquery user -inactive 4 | dsmod user -disabled yes 
    

نکته :

  1. بعد از اینکه کاربرا یا کامپیوتر های رو غیر فعال کردی بلافاصله اونها رو حذف نکن و یک OU درست کن و همه رو داخل اون بریز ، یه مدت چند روزی صبر کن اگر صدای کسی در نیومد بعد پاکشون کن .
  2. همیشه سعی کن یک بار در زندگیت این کارو انجام بدی برای شرکت و طوری کار کن که همه چیز مستند بشه ، یعنی اینقدر خوب مستند سازی کن بعد از این کار که همه کاربرا و کامپیوتر های توضیحات داشته باشن و اینجوری نظم کاریتو حفظ کن.
  3. دقت کن که عدد 4 هفته رو نشون میده نه روز و واحد شمارش اینجا هفته هست.
  4. در دستورات مربوط به Active Directory در صورتی که بخایم خروجی یک دستور رو به عنوان ورودی دستور دیگه بکار ببریم از علامت Pipe یا | استفاده می کنیم.
  5. همین کارو برای کامپیوترهای غیر فعال هم میتونی انجام بدی فقط به جای User باید Computer رو بنویسی .

نویسنده : محمد نصیری
منبع : جزیره سرویس های مایکروسافت وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است


برچسب ها
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
  • در روش فوق، چگونه می‌توان لیست کاربرانی را برگرداند که disable نیستند؟

    به عنوان مثال فرض کنید که در روش فوق به جای pipe کردن خروجی و disable کردن همه کاربرهای لیست شده، بخواهیم این کار را دستی انجام دهیم و یک به یک اقدام به انتخاب و تصمیم گیری در مورد disable کردن آنها بنماییم.
    در این صورت مطلوبست که در دفعات بعدی اجرا، لیست کاربرانی که وضعیت آنها disable نیست ولی در بازه مورد نظر ما غیر فعال بودند برگردانده شود (به عبارت دیگر، کاربرانی را که در اجراهای قبل disable کردیم فیلتر کند و نمایش ندهد.)
  • منظورتون رو درست متوجه نشدم !! لیست کاربرانی که در حال حاضر از قبل Disable نشدن خوب یعنی لیست کاربران فعال !!! درسته ؟
  • دوست عزیز ، در دستوری که نوشته شده ما کاربران disable رو شناسایی نمیکنیم ، در حقیقت فکر میکنیم اینجا بین Disable و Inactive براتون ابهام ایجاد شده ، ما در اینجا کاربرانی رو شناسایی میکنیم که inactive بودند ، یعنی در طی مدت یک ماه یا 4 هفته گذشته به سیستمشون ورود از طریق اکتیودایرکتوری نداشتند یعنی از دامین کنترلر به عنوان سیستم مرکزی احراز هویت استفاده نکردند . قاعدتا کاربری که جزو این لیست نیست جزو کاربران فعال و اکتیو محسوب میشه . شما میتونید لیست کاربرای inactive رو اکسپورت بگیرین و بعد انتخاب کنین که کدوم باشه و کدوم نباشه . باز شما دقیقا کاری رو که قصد دارین انجام بدین رو تشریح کنین تا جاییکه بتونم کمکتون میکنم.
  • @ما کاربران disable رو شناسایی نمیکنیم.
    درسته ولی کاربران شناسایی شده را disable میکنیم (در دستور دوم)، یا به هر حال قصد disable کردن آنها را داریم.

    @ما در اینجا کاربرانی رو شناسایی میکنیم که inactive بودند
    درسته، در دستور اول. ولی اگر کاربری disable باشد، تمایلی به دانستن اینکه آیا فعالیتی در آن بازه داشته است یا نه، نداریم و نمیخواهیم در لیست بیاید.

    در ضمن دستور:
    dsquery user -inactive 4 -disabled
    
    معکوس خروجی مورد نظر را بر می گرداند (یعنی کاربرانی که علاوه بر نداشتن فعالیت، disable هم هستند)

    ولی دستوری شبیه به این نداریم:
    dsquery user -inactive 4 -enabled
    
    که کاربرانی را برگرداند که فعالیت نداشته اند ولی همچنان enable باقی مانده اند!


  • من همچنان دارم دنبال راهکار ساده ترین برای حل این مشکل میگردم اما یه راهکاری دارم که معمولا خودم از این روش استفاده می کنم ، اول یک OU به نام Disabled Accounts ایجاد میکنم و بعد با استفاده از دستور زیر aacount های غیر فعال شده رو به اون منتقل می کنم :
    dsquery user -disabled | dsmove user -newparent "ou='disabled account',dc=etc,dc=etc,dc=etc"
    
    خوب بعد از این از همون دستور dsquery استفاده می کنیم ولی براش OU خاصی رو برای query رد نظر میگیریم :
    dsquery user -inactive "ou='disabled account',dc=etc,dc=etc,dc=etc"
    
    البته قاعدتا در قسمت دوم باید مسیر OU جدید رو وارد کنی که میخای داخلش جستجو کنی و ساختار distinguished Name رو هم باید رعایت کنی که مشکلی پیش نیاد.
  • خوب فکر کنم در نهایت می تونی از دستور ترکیبی زیر استفاده کنی که یک خروجی خوب هم بهت میده :
    dsquery user -inactive 4 -limit 0 | dsget user -fn -ln -samid -disabled | find /v "dsget" | find /v "samid" | find /v "yes" >>c:\users.tx
    
  • سلام
    من فرمان را اجرا کردم ولی user هایی که بهم داد خییلی کمتر از حد انتظارم بود
    امکان داره اکانت هایی که خیلی وقت باشد که استفاده نشده باشه را نشان ندهد ؟
  • خیر ، این دستور کاملا دقیق هست و مطمئن باشید نتیجه درستی میده ، توجه کنید که هرگونه Login به سیستم از طرف این سیستم فعال بودن کاربر رو می رسونه حالا الزامی نیست کاربر وارد سیستم بشه شما اگر سرویسی داشته باشید که با اکانت اون کاربر وارد سیستم بشه همون برای فعال بودن این کاربر کافی هست ، از طرفی ممکنه اشخاصی در شبکه شما چند کاربر داشته باشند.
  • این پست حذف شده است
    دلیل حذف: مورد مطرح شده ارتباطی با موضوع سئوال ندارد

  • این دستورات در ویندوز سرور 2003 هم کاربرد داره؟
  • این command روی سرور 2003 هم به خوبی اجرا شد و در برقراری نظم AD سازمان به من خیلی کمک کرد.
  • دستوری رو که کاربر Nushin اعلام کردن، یعنی دستور
    dsquery user -inactive 4 -disabled
    

    کامل نبوده و به درستی کار نمی کند.

    در مجموعه من user های خیلی زیادی هستند که diable هستند اما این خروجی فقط تعداد کمی از User ها را در خروجی نمایش داد.
  • شما یک پارامتر limit- ۰ باید اضافه کنید
  • ممنونم. میشه شکل کلی دستور رو برام زحمت بکشین بنویسن؟
    یعنی دقیقاً به چه شکلی باید دستور رو وارد کنم؟
    من به این شکل وارد کردم که خروجی دستور می گفت ساختارت اشتباه هست.
    dsquery user -inactive 4 -disabled limit-0
    این دستور خروجی نداد! به چه شکل باید وارد کنم؟
    ممنون.
  • به شکل زیر وارد کنید :
    dsquery computer -limit 0 -inactive 4
    
  • ممنونم از راهنمایی تونو
    میشه توضیح بدین که اضافه کردن این قسمت به command مربوطه دقیقاً باعث اجرای چه فرایندی میه؟ یعنی با اضافه کردن اون ما داریم به AD چی میگیم؟ مثلاً inactive 4 یعنی 4 هفته گذشته. منظور از limit-0 چی هست و ما چه کاری رو با زدن اون داریم انجام میدیم؟ آیا حالات های دیگه ای هم داره limit?

  • اگر تعداد کاربران بالا باشه یا کامپیوترها برای نمایش اونها محدودیت پیشفرض وجود داره با این سویچ شما میگید محدودیت نمایش رو حذف کنه ... limit یعنی محدودیت ... limit وقتی صفر هست یعنی محدودیتی در نمایش تعداد کاربران و کامپیوترها نداشته باشید.
  • بیینید من دقیقاً همین Command رو اجرا کردم ولی خروجی که به من داده میشه (تعداد User هایی که از سال ها قبل در AD موجود هستن خیلی بیشتر از این هاست) اما فقط تعداد خیلی کم و محدودی رو توی خروجی میده.

    >dsquery user -limit 0 -inactive 4 
    
  • خوب حتما همین تعداد هستند ، خروجی درست هست شک نکنید
  • با این دستور می خوام تمام کاربرهایی که disabled هستند بروند در ou=disabled-account
    این دستور زمانی انجام میشه که فقط یک کاربر Disabled هست چطور میتونم تمام کاربرهای disabled را انتقال بدهم؟

    dsquery user -disabled dc=it,dc=ir | dsmove -newparent ou=disabled-account,dc=it,dc=ir

  • از طریق PowerShell و با استفاده از این دستور انجام شد:

    Search-ADAccount –AccountDisabled –UsersOnly –SearchBase “OU=OUName, DC=DomainName, DC=com” | Move-ADObject –TargetPath “OU=Disabled-Users, DC=DomainName,DC=com”

  • سلام به همه. من یک وب سایت دارم راه اندازی میکنم. توی پیاده سازی خیلی دنبال کد نویسی نیستم، بیشتر میخوام برنامه هایی که قبلا نوشته شده و قابل استفاده هست رو در کنار هم قرار بدم . به نظر شما برای User Store (یا همون بخشی که مربوط به ثبت نام کاربر و مدیریت کاربران و لاگین هست) منطقیه از اکتیو دایرکتوری استفاده کنم؟
  • خیر به هیچ عنوان ، اکتیودایرکتوری برای استفاده Public اصلا توصیه نمیشه چون مکانیزم ثبت نام نداره.
  • ممنون از پاسختون. میشه راهنمایی کنید چطور میتونم یه user store مناسب برای این پروژه باید پیدا کنم؟ من دنبال کد نویسی برای این کار نیستم، چون قطعا اگر بخوام کد بنویسم، از نظر کیفی با نمونه هایی که توی بازار هست خیلی خیلی فاصله خواهد داشت. بنابراین ترجیحا میخوام از user store ی استفاده کنم که استانداردهای لازم و همچنین قابلیت integrate با سایر نرم افزارهای موجود (مانند Billingها، Dashboardها، Help Deskها و ...) رو داشته باشه.
  • این سئوال شما ارتباطی اصلا به موضوع این مطلب نداره لطفا سئوال مجزا ارسال کنید کاملا تشریح کنید منظورتون از User Store چیست هست و چه انتظاراتی دارید که بهتر بشه پیگیری کرد.
  • ممنون از پاسختون. من قبلا این مورد رو با اشکال مختلف به عنوان سئوال ارسال کردم ولی متأسفانه فکر میکنم تا حالا کسی از دوستان این مشکل براش پیش نیومده باشه. چون همه سئوالات بی جواب موندن.
    لینک
    لینک

    ضمنا در لینک دومی توضیحات تکمیلی و کاملتر (طبق دستور شما) اضافه شد.

برای ارسال نظر ابتدا به سایت وارد شوید

arrow