نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • ویندوز 7، XP
  • کامپیوترهای غیر فعال را در Active Directory جستجو کنید. یافتن کاربران غیرفعال AD با Get-ADUser

کامپیوترهای غیر فعال را در Active Directory جستجو کنید. یافتن کاربران غیرفعال AD با Get-ADUser

منتشر شده در 19 فوریه 2009 توسط بدون دیدگاه

در این مقاله نحوه کار ابزارهای جستجو را به شما نشان خواهم داد اکتیو دایرکتوریدر ویندوز ویستا

من دوست دارم زمانی که شخصی در مایکروسافت برای اولین بار به من گفت که ویستا یک اپلت ویژه دارد که به کاربران امکان جستجوی Active Directory را می دهد، چهره خود را ببینم. این وحشت آرام بود. در ابتدا، من بلافاصله پرس و جوهای پیچیده LDAP را به یاد آوردم. فکر بعدی من در مورد اطلاعاتی در اکتیو دایرکتوری بود که کاربران به آنها دسترسی تجاری ندارند (چیزهایی مانند SID، گروه های امنیتی، تکالیف برنامه و غیره). Panic جای خود را به این فکر کرده است که چگونه می توانم این ویژگی های جستجو را غیرفعال کنم تا کاربران را تحت کنترل خود نگه دارم. اکنون که ویستا در نسخه بتا است، این فرصت را داشتم که نگاهی به این ابزار بیندازم و می توانم به شما بگویم که بسیار مفید، کاربردی و اصلا خطرناک نیست.

برای شروع

قبل از اینکه ابزار جستجوی Active Directory را به شما نشان دهم، می‌خواهم به یک نکته اشاره کنم. احتمالاً در مورد رایانه ای شنیده اید که با نام اختصاری GIGO (آشغال در، زباله بیرون) خوانده می شود. اصل GIGO در مورد ابزار جستجوی Active Directory بسیار صادق است. هنگامی که اشیاء را در اکتیو دایرکتوری ایجاد می کنید، این گزینه را دارید که اطلاعات مربوط به ویژگی های خاصی از شی را وارد کنید. به عنوان مثال، اگر یک شی کاربر ایجاد می کنید، باید اطلاعات معمول مانند نام کاربری و رمز عبور را وارد کنید، اما می توانید اطلاعات دیگری مانند آدرس و شماره تلفن کاربر را نیز وارد کنید.

دلیل اعمال اصل GIGO در اینجا این است که شما باید پارامترهای زیادی را برای اطلاعات ویژگی شی وارد کنید و آن اطلاعات را به روز نگه دارید، در این صورت ابزار جستجوی Active Directory منبع ارزشمندی برای کاربران شما خواهد بود. از طرف دیگر، اگر مدیری هستید که هنگام ایجاد فقط حداقل اطلاعات مورد نیاز را وارد می کنید شیء فعالدایرکتوری، سپس ابزار جستجوی Active Directory اساساً بی فایده خواهد بود.

با تمام آنچه گفته شد، بیایید نگاهی به ابزار جستجوی Active Directory بیندازیم. می توانید آن را با باز کردن کنترل پنل و کلیک بر روی پیوند شبکه و اینترنت که پس از پیوندهای مرکز شبکه ( مرکز شبکه) و شبکه را مرور کنید. حالا خواهید دید صفحه نمایش ویندوز 3.11، که کامپیوترهای درون یک دامنه را نمایش می دهد، همانطور که در شکل 1 در زیر نشان داده شده است.

تصویر 1: دیواره آتشحاوی پیوندی برای جستجو در اکتیو دایرکتوری (جستجوی اکتیو دایرکتوری)

اگر به بالای این پنجره نگاه کنید، آیکونی به نام Search Active Directory را مشاهده خواهید کرد. روی این پیوند کلیک کنید و ویندوز ابزار جستجوی Active Directory را که در شکل 2 نشان داده شده است راه اندازی می کند.

تصویر 2: ابزار جستجوی Active Directory به این شکل است

صفحه نمایش بسیار ساده و به خوبی سازماندهی شده است. در بالا، منوی کشویی Find را خواهید دید. به طور پیش‌فرض، این لیست به کاربر اجازه می‌دهد تا کاربران، مخاطبین و گروه‌ها را جستجو کند، با این حال، کاربران امکان جستجوی رایانه، چاپگر، پوشه های مشترک، یا یک جستجوی سفارشی انجام دهید.

اگر به سمت راست فهرست کشویی Find نگاه کنید، خواهید دید که به طور پیش فرض این ابزار برای جستجو در کل Active Directory پیکربندی شده است. لیست کشویی In به شما این امکان را می دهد که در یک دامنه خاص جستجو کنید.

کاربران می توانند با وارد کردن نام یا توضیحات موردی که به دنبال آن هستند و کلیک بر روی دکمه Find Now، یک کوئری ساده در Active Directory انجام دهند. به عنوان مثال، اگر نام یکی از کاربران خود را وارد کنم و روی دکمه Find Now کلیک کنم، ویستا لیستی از کاربران، مخاطبین و گروه هایی را که با درخواست من مطابقت دارند، برمی گرداند، همانطور که در شکل 3 نشان داده شده است. سپس می توانم روی آن دوبار کلیک کنم. شی برای مشاهده ویژگی های آن، که در شکل 4 نشان داده شده است.

تصویر 3: Vista تمام کاربران، مخاطبین و گروه هایی را که با پرس و جو مطابقت دارند نمایش می دهد

شکل 4:اگر روی یک شی پیدا شده دوبار کلیک کنید، ویستا ویژگی های شی را نمایش می دهد

اگر شکل 4 کمی عجیب به نظر می رسد، به دلیل اصل GIGO است که قبلاً در مورد آن صحبت کردم. User1 فقط یک آزمایش است حسابدر دامنه من، بنابراین ویژگی های زیادی با آن مرتبط نیست. و اگر چنین است، نتایج جستجوی زیادی نمایش داده نمی شود. به همین دلیل است که هنگام ایجاد یک شی جدید پر کردن ویژگی های اضافی مهم است. اگر در این مورد ویژگی‌های اضافی پر می‌شد، در نتایج جستجو کامل می‌بینیم اطلاعات تماسکاربر.

اگر هنوز در مورد نیاز به پر کردن ویژگی های اضافی برای اشیاء Active Directory خود مطمئن نیستید، ویژگی جستجوی پیشرفته ممکن است نظر شما را تغییر دهد. تب Advanced که در شکل 5 نشان داده شده است، به شما امکان می دهد فیلد، شرط و مقدار را برای جستجو انتخاب کنید.


تصویر
5: تب پیشرفته در ابزار جستجوی Active Directory

لیست کشویی Field به شما امکان می دهد تا ویژگی های یک نوع خاص را جستجو کنید. به عنوان مثال، اگر می خواهید کاربرانی را در یک شهر خاص پیدا کنید، می توانید از لیست بازشوی Field، گزینه User را انتخاب کنید و همانطور که در شکل 6 نشان داده شده است، ویژگی City را انتخاب کنید.

تصویر 6: جستجوی پیشرفته به شما امکان می دهد جستجوهایی را روی ویژگی های خاص Active Directory انجام دهید

کشویی شرایط اساساً به شما امکان می دهد یک اپراتور برای عملکرد انتخاب کنید. به عنوان مثال، می توانید شرایطی مانند "شروع می شود با" (شروع می شود)، "پایان می یابد" (پایان می یابد با است)، "نه" (نیست) و غیره را انتخاب کنید. در نهایت، قسمت Value به شما امکان می دهد معیارهای جستجو را وارد کنید. به عنوان مثال، اگر می خواهید همه کاربران را در دفتر میامی پیدا کنید، می توانید Users | را انتخاب کنید شهر (کاربران|شهر) از لیست کشویی فیلد. شرط (Condition) را روی (Exactly) قرار دهید و معیار جستجو را در قسمت Value وارد کنید. میامی

نتیجه

همانطور که می بینید، ابزار جستجوی Active Directory به شما امکان استفاده از قدرت Active Directory را می دهد. کاربران می توانند بدون ایجاد پرس و جوهای پیچیده LDAP اطلاعات را از اکتیو دایرکتوری بازیابی کنند.

www.windowsnetworking.com

همچنین ببینید:

نظرات خوانندگان (بدون نظر)

بله، من یک مرد هستم! =)

صرافی 2007

اگر مایلید قسمت های قبلی این سری مقالات را بخوانید، لطفاً پیوندها را دنبال کنید: Monitor Exchange 2007 with System Manager ...

مقدمه در این مقاله چند قسمتی، می‌خواهم فرآیندی را که اخیراً برای مهاجرت از آن استفاده کردم، به شما نشان دهم محیط موجودصرافی 2003 ...

اگر قسمت اول این مجموعه را از دست دادید، لطفا لینک زیر را با استفاده از ابزار مطالعه کنید تبادل سرورابزار تحلیل اتصال از راه دور (قسمت...

عصر بخیر، خوانندگان و مشترکین عزیز، ما همچنان به مطالعه با شما ادامه می دهیم ویژگی های پاورشلو اکتیو دایرکتوری همانطور که به یاد دارید، او تمام حساب های کاربری و رایانه را در پایگاه داده NTDS.dit دارد، همه چیز عالی و متمرکز است. هنگامی که یک شرکت بیش از یک مدیر سیستم دارد، ممکن است معلوم شود که زباله و اعتبار اضافی را جمع آوری می کند. همه ما آدم‌هایی هستیم و می‌توانیم بعضی چیزها را فراموش کنیم و در بعضی لحظات می‌توانیم حواسمان پرت شود که همین امر باعث فراموشی نیز می‌شود. اطلاعات مهم. و به این نتیجه می رسیم که زیاد نیست کاربران فعال(اخراج یا فراموش شده)، در هر صورت خوب است مدیر سیستمباید آنها را شناسایی کند، آنها را خاموش کند و سپس به میل خود آنها را حذف کند، کاری که ما انجام خواهیم داد.

از طریق ADUC Snap

دفعه قبل، من قبلاً مثالی از استفاده از Active Directory Users and Computers برای شما آوردم که از طریق آن رایانه‌های گمشده را در شبکه محلی جستجو کردیم که برای یک ماه ظاهر نشده بودند. حالا بیایید همین کار را با حساب های کاربری انجام دهیم. من AD روشن دارم ویندوز سرور 2012 R2، ADUC را باز کنید، برای انجام این کار، WIN + R را فشار دهید و dsa.msc را وارد کنید.

در فرم درخواستی که باز می شود، وارد کنید:

  • نام پرس و جو > کاربران گم شده من هستند
  • توضیحات در صورت نیاز
  • Request root > در اینجا می توانید کل دامنه را ترک کنید یا روی OU مورد نظر مشخص کنید

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

در برگه کاربران، آیتم «تعداد روزهای پس از آن را می بینیم آخرین وروددر سیستم" من برای مثال 60 روز تنظیم کردم.

در نتیجه، لیستی از حساب های غیرفعال کارمند مورد نیاز خود را دریافت خواهید کرد.

از طریق پاورشل اسنپ

همین کار را می توان از طریق Powershell انجام داد. من بلافاصله کدی را ارائه می دهم که وظیفه آن جستجوی کاربران غیرفعال است ، برای این کار یک دوره 45 روزه را انتخاب کردم ، داده های کاربر را خاموش کردم و به یک OU ویژه برای این کار منتقل شدم.

$date_with_offset=(Get-Date).AddDays(-45)
$users = Get-ADUser -Properties LastLogonDate -Filter (LastLogonDate -lt $date_with_offset ) | SortLastLogonDate
foreach ($user در $users) (set-aduser $user -enabled $false؛ move-adobject -identity $user -targetpath "ou=Dismissed,ou=Msk L.Users,ou=Location,dc=msk,dc= contoso,dc=com")
Get-ADUser -Properties LastLogonDate -Filter (LastLogonDate -lt $date_with_offset ) | SortLastLogonDate | نام FT، LastLogonDate -AutoSize | خارج از فایل c:\Script\users.txt

  • در خط اول، متغیری را اعلام می کنید که در آن دوره جستجو را تعیین می کنید
  • یک متغیر ایجاد کنید و بر اساس آخرین زمان ورود به سیستم انتخاب کنید
  • جابجایی کاربران

  • تهیه گزارش به یک فایل

چیزهای مفیدتر برای کار با کاربر. قبل از استفاده از دستورات زیر، باید ماژول Active Directory را از طریق دستور بارگذاری کنید

Get-Help Get-ADUser

ماکسیم کوستیشین

حسابرسی حساب های کاربری در اکتیو دایرکتوری

این مقاله از اطلاعات منتشر شده در Windows & Net Magazine/RE #5، 2003 با عنوان "LDIF Directory Exchange Utility" الهام گرفته شده است که راه حل هایی را پیشنهاد می کند که می توان از آنها برای ارائه استفاده کرد. سطح مورد نیازاتوماسیون هنگام ممیزی حساب های کاربری در اکتیو دایرکتوری. این مقاله ویژگی‌های اصلی دو برنامه کاربردی Ldifde.exe و Csvde.exe را توضیح داد که اضافه کردن، اصلاح و حذف اشیاء Active Directory را ارائه می‌کنند.

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

بیان سوالات مشکل

در یک نقطه خاص از زمان، آن حالت بحرانی برای لیست کاربران رخ می دهد شبکه محلیهنگامی که عدم تمایل به توقف و تجزیه و تحلیل محتوای آن می تواند هزینه ها و مشکلات بیشتری نسبت به انجام به موقع کار حسابرسی و رفع نواقص شناسایی شده به همراه داشته باشد.

در مورد چی در سوال? در سازمان هایی که تعداد کارکنانی که با آن کار می کنند فناوری رایانه، بیش از 100 نفر است، اداره معمولا توسط دو یا سه کارمند انجام می شود. همه آنها، به دلیل شرایط مختلف، با کار وارد کردن اطلاعات مربوط به مالکان در حساب های جدید ایجاد شده با دقت کافی برخورد نمی کنند. علاوه بر این، مدیران معمولاً در لیست آن دسته از کارمندانی که موظف به اطلاع رسانی در مورد اخراج هستند، قرار نمی گیرند. این دو شرایط، دلایل اصلی انباشته شدن حساب های «ارواح مرده» هستند.

بیایید سعی کنیم برخی از مهم ترین و مشکلات آشکاربرای لیست کاربران فعالفهرست راهنما.

اولا، ورودی های اضافیدر لیست کاربرانی که می توانند:

  • حساب کارکنان اخراج شده؛
  • حساب‌های کارمندان شاغل که استفاده نمی‌شوند و بعید است که صاحبان آن‌ها نام ورود به شبکه خود را به خاطر بسپارند (بدون ذکر رمز عبور).
  • حساب‌های کاربران مسدود شده که سرپرست اولین مرحله را قبل از حذف انجام داده است، اما مراحل را کامل نکرده است.
  • حساب‌هایی که برای آزمایش ایجاد شده‌اند، که معمولاً دارای امتیازات نسبتاً بالایی هستند و پس از اتمام مراحل آزمایش، مدیر فراموش کرده است آن‌ها را حذف کند.

ثانیاً، آن دسته از حساب‌هایی که مالک را منحصراً شناسایی نمی‌کنند، یعنی می‌توانند به عنوان نامعتبر طبقه‌بندی شوند. اطلاعات تکمیلیکه در آن به شما اجازه نمی دهد نام شخصی را نام ببرید، موقعیت و بخش او را تعیین کنید، نحوه تماس با او را بیابید (البته، ما در اینجا در مورد حساب های استاندارد مانند "Administrator"، "Administrator"، "Guest" صحبت نمی کنیم. "مهمان" و موارد دیگر).

و ثالثاً، مطابقت با الزامات خط‌مشی امنیتی شرکت نشان می‌دهد که تلاش‌های مدیران و کاربران باید در جهت اطمینان از استفاده از حساب فقط توسط مالک آن باشد. یعنی اگر پروتکل انجام عملیات با هر یک از برنامه ها نشان دهد که کاربر تحت حساب ایوان ایوانف وارد شده است ، صرف زمان برای جداسازی اضافی با شرایطی که معلوم می شود حساب در حال انجام است کاملاً غیر منطقی است. استفاده از (به دلیل دانش ناکافی از کامپیوتر یا تنبلی معمولی) از همه کارکنان بخش، که پنج نفر را استخدام می کند.

نمای کلی گزینه های حساب

بیایید سعی کنیم امکاناتی را که یک مدیر برای کار با حساب های کاربری در اکتیو دایرکتوری در اختیار دارد و نحوه استفاده از آنها برای ممیزی فهرست کنیم.

snap-in Active Directory Users and Computers (که در قسمت Administrative Tools در سرور قابل مشاهده است). یک ویژگی عالی برای افزودن، ویرایش خواص و حذف کاربران دامنه، اما، متأسفانه، در امور بازبینی و ممیزی بی فایده است. به لحظات مثبتشامل امکان صادر کردن لیستی از کاربران است که می تواند شامل فیلدهایی مانند "ورود کاربر"، "نام"، "نام نمایش"، "نام خانوادگی"، "تغییر شده" باشد. توجه داشته باشید که فیلد "تغییر شده" زمان و تاریخ آخرین تغییرات حساب را توسط مدیر (تنظیمات اصلاح شد) یا مالک (رمز عبور تغییر کرده است) را نشان می دهد.

ابزار سیستم Net.exe با استفاده از این ابزار، می توانید کار با داده ها را ارائه دهید کاربر خاص(گزینه تماس - "کاربر خالص") - تاریخ و زمان را دریافت کنید آخرین ثبت نامدر شبکه، و همچنین تعیین زمان انقضای رمز عبور.

برنامه های اسکنر که وظیفه آنها جمع آوری اطلاعات در مورد وضعیت یک شبکه محلی یا یک رایانه خاص است. در میان بیشترین برنامه های جالباز نظر به دست آوردن اطلاعات در مورد کاربران، ما به اسکنر امنیت شبکه CFI LANguard (نسخه 3.1.5) توجه می کنیم. این فرصتی را برای دریافت کافی فراهم می کند اطلاعات دقیقدر مورد حساب ها، مانند تاریخ و زمان آخرین ثبت نام؛ اطلاعات مربوط به زمان منقضی شدن رمز عبور؛ تعداد ثبت نام کاربران در شبکه؛ مقدار شاخص تلاش برای ورود با رمز عبور نادرست. علاوه بر این، این برنامه به شما امکان می دهد بر اساس داده های دو پروتکل اسکن ذخیره شده گزارش مغایرت ایجاد کنید و لیستی از حساب های ایجاد شده و حذف شده را دریافت کنید. در انصاف، ما توجه داشته باشید که این برنامه است کاستی های قابل توجه، به ویژه برای دسته کاربران روسی زبان، زیرا نام های روسی را به درستی مدیریت نمی کند (در نام ها و گزینه های اضافیحساب ها و غیره). همچنین هیچ راهی برای ذخیره وجود ندارد فایل جداگانهاطلاعات مربوط به مغایرت های یافت شده در لیست حساب ها.

اجازه دهید اکنون به بررسی ابزارهای آب و برق بپردازیم، که به نظر ما، فرصتی برای به دست آوردن بیشترین میزان را فراهم می کند اطلاعات کاملتوسط کاربران - Ldifde.exe و Csvde.exe.

اولین ابزار به شما امکان می دهد داده ها را از Active Directory به یک فایل LDIF صادر کنید. استاندارد فایل LDIF در توصیه های RFC-2849 برای وارد کردن و صادرات داده ها از دایرکتوری های LDAP مانند Active Directory تعریف شده است. هنگامی که داده ها صادر شد، می توانید از فایل LDIF برای وارد کردن همان اشیاء به فهرست LDAP دیگری استفاده کنید.

Csvde.exe یک ابزار مشابه Ldifde.exe است (پارامترهای تماس یکسان هستند) که از فرمت متفاوتی برای ذخیره داده ها در فایل متنی- مقادیر با کاما (فرمت CSV) از هم جدا می شوند. این قالبتوسط برنامه پشتیبانی می شود مایکروسافت اکسل، که فایل ها را با فرمت CSV و همچنین دسترسی مایکروسافت.

با استفاده از ابزار Csvde.exe

برای وضوح، به جای توضیحات کاملپارامترهای کار با ابزار، مثالی ارائه می دهیم که بر اساس آن می توانید پرس و جوهایی را برای تمام موارد لازم برای حسابرسی ایجاد کنید.

csvde -f USERS_WORK.CSV -b GUEST MICROSOFT *

R "(&(objectClass=user)(!(objectClass=کامپیوتر))(!(userAccountControl=514))(!(userAccountControl=66050))"

L "DN، MemberOf، badPasswordTime، lastLogon، logonCount، sAMAccountName، userAccountControl، WhenChanged، WhenCreated"

استفاده از این دستور به شما این امکان را می دهد که جالب ترین اطلاعات را از منظر حسابرسی در حساب های کاربری فعال (بلاک نشده) در یک فایل ذخیره کنید.

فایل USER_WORK.CSV (پارامتر -f) با داده های حساب کاربری دامنه نوشته می شود. این برنامه داده هایی را که باید در دسترس کاربر GUEST دامنه MICROSOFT باشد، پردازش می کند که رمز عبور آن باید در هنگام اجرای دستور (پارامتر -b) وارد شود.

از بین تمام اشیاء موجود در فهرست LDAP، تنها حساب های کاربری انتخاب می شوند که هیچ اطلاعات قفل حساب در قسمت پارامتر userAccountControl (پارامتر -r) برای آنها وجود ندارد. مانند عملیات منطقیبرای فیلتر استفاده می شود - "!" - NO منطقی، "&" - منطقی AND، "|" - یا منطقی

در نتیجه اجرای دستور، داده های فیلدهای فهرست شده در پارامتر -l در فایل CSV ذخیره می شود (لیست جالب ترین فیلدها در جدول 1 آورده شده است).

توجه: دستور "Net user" داده های فیلد pwdLastSet و همچنین برخی از مقادیر زمانی را به درستی پردازش نمی کند. برای فیلد pwdLastSet، اگر رمز عبور تنظیم نشده است، خروجی بگیرید تاریخ فعلیو زمان. برای داده های زمانی، به ترتیب 12:mm AM و 12:mm PM به جای 00:mm AM و 00:mm PM نمایش داده می شود.

جدول 1 شرح برخی از فیلدهای حساب دایرکتوری LDAP

نام زمینه

توضیح

نمونه داده های ذخیره شده

اطلاعات شناسایی یک حساب در فهرست LDAP

CN=بیل گیتس،CN=کاربران،DC=مایکروسافت،DC=com

عضو

اطلاعات مربوط به گروه هایی که حساب به آنها تعلق دارد

CN=مهمانان دامنه،CN=کاربران،DC=Microsoft، DC=com؛CN=مهمانان،CN=Builtin،DC=Microsoft، DC=com

lastLogon

تاریخ و زمان آخرین ورود

126340325381029632

badPasswordTime

تاریخ و زمان آخرین باری که از رمز عبور نادرست استفاده شده است

126334418756267552

pwdLastSet

تاریخ و زمان تعیین آخرین رمز عبور

126318831197720512

حساب منقضی می شود

تاریخ و زمانی که حساب منقضی می شود

کنترل حساب کاربری

شامل چندین گزینه حساب است

66048

(0x10200 = DONT_EXPIRE_PASSWORD+NORMAL_ACCOUNT)

sAMAccountName

نامی که با آن ثبت نام انجام می شود

دروازه ها

وقتی تغییر کرد

تاریخ و زمان وقوع آن آخرین تغییراتدر حساب

20010511052201.0Z

whenCreated

تاریخ و زمان ایجاد حساب کاربری

20010511052201.0Z

logonCount

تعداد ثبت نام

objectClass

کلاس شیء حساب

کاربر

فرمت های داده های تاریخ و زمان

اگر دقت کرده باشید، متوجه شده اید که در جدول 1 دو مورد وجود دارد گزینه های مختلفنشان دهنده مقادیر تاریخ و زمان

اگر فرمتی مانند YYYYMMDDHHMMSS.0Z (نوع GeneralizedTime برای رمزگذاری ASN.1) مورد استفاده برای فیلدهای WhenChanged، WhenCreated GMT به اندازه کافی واضح باشد، پارامترهایی مانند lastLogon، pwdLastSet، accountExpires اطلاعات تاریخ و زمان را در قالب 32 بیتی یونیکس نشان می دهند و حاوی ثانیه از 1 ژانویه 1970، GMT. برای وضوح، در اینجا مقادیری وجود دارد که ممکن است در فایل مقادیر آپلود شده برای پارامترهای تاریخ و زمان در قالب یونیکس وجود داشته باشد:

126858492000000000 - مربوط به 1.01.2003 00:00

127014876000000000 - مربوط به 1.07.2003 00:00

127014912000000000 - مربوط به 1.07.2003 01:00

استفاده از توابع تبدیل برای داده های CSV

اطلاعات حسابی که با استفاده از دستوری مشابه آنچه در ابتدای بخش "استفاده از ابزار Csvde.exe" نشان داده شده است بارگذاری شده است، می تواند در Microsoft Access بارگذاری شود، اما به دلیل اینکه برنامه به درستی پردازش نمی کند. کاراکتر جداکننده "," در ساختارهایی مانند "CN=Bill Gates,CN=Users, DC=Microsoft,DC=com" پس بهتر است از امکانات مشابه استفاده کنید. برنامه های مایکروسافتاکسل (شکل 1 را ببینید). علاوه بر این، اطلاعات برای سهولت استفاده را می توان با استفاده از مایکروسافت پردازش کرد ویژگی های اکسل(ماکروها، توابع).

شکل ها اطلاعات فایل CVS را بلافاصله پس از بارگذاری آن در مایکروسافت اکسل (شکل 1) و پس از تبدیل (شکل 2) نشان می دهد. نمونه هایی از این تبدیل ها در زیر آورده شده است. گزینه‌های تبدیل پیشنهادی ادعا نمی‌کنند که از نظر منطقی کامل هستند، اما می‌توانند مبنایی باشند که توسط آن مکانیسم پردازش لازم برای هر مورد خاص در زمان کوتاهی ایجاد شود.

دریافت داده از ساختار فیلد DN

برای دریافت نام کاربری از ساختاری مانند "…CN=Username,…" در سلول A2، فرمول تبدیل زیر را می توان استفاده کرد:

MID(A2;

FIND("CN=";A2)+3;

FIND(""; A2;

FIND("CN=", A2)+3

) - FIND("CN=";A2) -3

برای به دست آوردن اطلاعات از ساختاری مانند "...OU=Data،..." در سلول A2، فرمول تبدیل زیر را می توان استفاده کرد:

IF(ISBLANK("0"!A2)،"";

IF(ISERROR(FIND("OU=";"0"!A2)); "USERS";

MID("0"!A2;

FIND("OU=";"0"!A2)+3;

FIND(""; "0"!A2;

FIND("OU=";"0"!A2)+3) –

FIND("OU=";"0"!A2) -3

مدیریت داده های تاریخ و زمان یونیکس

ما پیشنهاد می کنیم تاریخ را در قالب DD.MM.YYYY بر اساس داده ها در قالب Unix در دو مرحله بدست آوریم. در مرحله اول تعداد روزهایی که از اول ژانویه 2003 گذشته است محاسبه می شود و در مرحله دوم یک رشته تاریخ در قالب استاندارد تشکیل می شود.

برای بدست آوردن تعداد روزهایی که از 1 ژانویه 2003 گذشته است، بر اساس داده های سلول F2 داده شده در قالب تاریخ و زمان یونیکس، می توان از فرمول تبدیل زیر استفاده کرد:

IF(

VALUE(LEFT(F2,11))=0;

ROUNDDOWN((VALUE(LEFT(F2,11))- 12685849200)/24/3600, 0)

مقدار جابجایی روزها نسبت به 1 ژانویه 2003 (در سلول E2) به دست آمده در مرحله اول برای تشکیل تاریخ در قالب استاندارد استفاده می شود.

IF(E2=-1;

"گمشده"؛

CONCATENATE(

DAY(DATEVALUE("1/1/2003")+E2);

".";

MONTH(DATEVALUE("1/1/2003")+E2);

".";

YEAR(DATEVALUE("1/1/2003")+E2)

مدیریت داده های تاریخ و زمان در قالب GeneralizedTime برای رمزگذاری ASN.1

تبدیل یک عدد در قالب YYYYMMDDMMSS.0Z به فرمت DD.MM.YYYY HH:MM

CONCATENATE(

MID(N2;7;2); "." MID(N2;5;2); "." MID(N2;1;4); ""؛

MID(N2;9;2); ":"; MID(N2;11;2)

پردازش مقدار فیلد userAccountControl در مورد مسدود شدن رکورد

دریافت اطلاعات در مورد وضعیت حساب توسط مقدار فیلد userAccontControl موجود در سلول G2:

IF(ISBLANK(G2)،"";

IF(ORG2=514; G2=66050);"Blocked";"Active")

توضیحات دقیق و توضیحات فرمت ذخیره سازی داده ها در قسمت userAccountControl را می توانید در مقاله مایکروسافت "چگونه از پرچم های UserAccountControl برای دستکاری استفاده کنیم" حساب کاربری Properties" (http://support.microsoft.com/?kbid=305144). ما فقط توجه می کنیم که اگر پارامترهای حساب تنظیم نشده باشند، مقدار اعشاری userAccountControl 512 است. مقدار اعشاری برای یک حساب مسدود شده بدون هیچ گزینه دیگری 514 است.

نتیجه

این مقاله روش نسبتاً ساده ای را برای به دست آوردن داده ها برای ممیزی حساب های کاربری در اکتیو دایرکتوری پیشنهاد می کند که به مهارت و دانش خاصی از زبان های برنامه نویسی نیاز ندارد.

توجه داشته باشید که علاوه بر روش فوق، می توان از نوع پیشنهادی مایکروسافت استفاده کرد که شامل استفاده از رابط ها می شود خدمات فعالدایرکتوری (ADSI)، که دسترسی ساده، قدرتمند و شی گرا به منابع اکتیو دایرکتوری را فراهم می کند. رابط های ADSI به برنامه نویسان و مدیران اجازه می دهد تا برنامه های کاتالوگ را با استفاده از آن ایجاد کنند ابزار سطح بالابه عنوان مثال مایکروسافت ویژوال بیسیک، جاوا، C یا Visual C++ بدون نگرانی در مورد تفاوت فضای نام. رابط های ADSI کاملاً قابل اسکریپت هستند و استفاده از آنها را برای مدیران آسان می کند.

و در نهایت، به عنوان توصیه، نکات ظریفی را که هنگام تجزیه و تحلیل داده های لیست کاربران باید به آنها توجه کنید، فهرست می کنیم، که ممکن است نشان دهنده مشکلات موجود در هنگام استفاده از حساب ها باشد:

  • حساب های مسدود شده (پس از تجزیه و تحلیل آخرین تاریخثبت نام ها در صورت عدم نیاز می توانند حذف شوند.
  • جزئیات حساب که نشان می‌دهد آخرین ورود آنلاین سه ماه پیش یا بیشتر بوده است، ممکن است نشان‌دهنده این باشد که کارمند صاحب حساب قبلا اخراج شده است.
  • اگر تعداد ثبت نام های آنلاین برای یک حساب صفر باشد و بیش از یک ماه از ایجاد آن گذشته باشد، ممکن است نشان دهنده عدم ادعای حساب ایجاد شده باشد.
  • تعداد بالای ثبت نام های آنلاین ممکن است نشان دهنده این باشد که این حساب برای ورود به شبکه نه تنها توسط مالک استفاده می شود.

در ویندوز و AD ویژگی هایی برای پیگیری رویدادهای ثبت نام شروع اخیر جلسه وجود دارد، اما تجزیه آنها بسیار دشوار است. یکی از گزینه‌ها استخراج رویدادهای ورود به سیستم در هر کنترل‌کننده دامنه (DC) و مرتب‌سازی آنها بر اساس تاریخ و کاربر برای شناسایی آخرین نمونه‌ها برای هر کاربر است. گزینه دیگر این است که مقادیر ویژگی کاربر AD lastlogon را بررسی کنید، که توسط کنترل کننده های دامنه نیز تکرار نمی شوند. بنابراین، مانند حالت اول، مقادیر lastlogon باید از هر DC در این دامنه بازیابی شوند و سپس جدیدترین نمونه ها برای هر کاربر تخصیص داده شود.

در Windows Server 2003 و سایر نسخه‌هایی که در سطوح عملکردی دامنه بالاتر اجرا می‌شوند، یک ویژگی lastlogontimestamp AD وجود دارد که بین آن‌ها تکرار می‌شود. کنترل کننده های دامنه. مقادیر این ویژگی به صورت اعداد صحیح طولانی ذخیره می شوند (در زمان نوشتن، مقدار من برای ویژگی lastlogontimestamp 129623232699932000 است)، که خواندن آن سخت است. با این حال، طراحان PowerShell for AD راهی برای تبدیل این عدد به یک مقدار توصیفی به نام LastLogonDate ارائه کرده‌اند که به این صورت است: Sat Oct 8, 2011 1:07:18 PM. این مقدار توسط Get-ADUser قابل دسترسی است.

با دانستن این موضوع، می توانید لیستی از کاربران را که بر اساس تاریخ آخرین ثبت نام در دامنه مرتب شده اند نمایش دهید:

Get-aduser -f * -pr lastlogondate|مرتب کردن -ویژگی lastlogondate|ft samaccountname، lastlogondate -auto

بنابراین، می توانید از هر DC پرس و جو کنید و ببینید آیا کاربرانی در دامنه هستند که آخرین بار در دامنه ثبت نام کرده اند، مثلاً در 22 سپتامبر 2011. با این حال، تفاوت های ظریف خاصی در اینجا وجود دارد. مشخصه lastlogontimestamp به نفع مدیران AD که به روشی برای نظارت بر رویدادهای گزارش شروع جلسه نیاز داشتند به AD اضافه شد، اما ردموند نگران این بود که افزودن نوعی مکانیسم ردیابی می تواند ترافیک تکرار AD را به میزان قابل توجهی افزایش دهد.

برای کاهش ترافیک مرتبط با تکرار مقادیر مشخصه lastlogontimestamp، کنترل‌کننده‌های دامنه این مقدار را حداکثر هر 9 تا 14 روز به روز می‌کنند. هر بار که یک کاربر وارد می شود، DC مقدار فعلی lastlogontimestamp آن کاربر را بررسی می کند. سپس DC انتخاب می کند عدد تصادفیبین 9 و 14. اگر تعداد روزهای بین آخرین رویداد ورود به سیستم و اکنون کمتر از عدد تصادفی انتخاب شده باشد، DC مقدار lastlogontimestamp را به روز نمی کند. این کاربر. بنابراین، مقدار lastlogontimestamp هر کاربر تقریباً هر 12 روز یکبار به‌روزرسانی می‌شود، صرفنظر از اینکه کاربر هر چند وقت یک بار جلسه خود را در طول شروع می‌کند. دوره داده شده. چنین داده‌هایی خیلی دقیق نیستند، اما به شما امکان می‌دهند ترافیک تکراری را کاهش دهید.

فرض کنید من ظهر روز 29 دی ماه 1391 ثبت نام کردم و قبل از آن از ساعت 9:00 روز 9 ژانویه سال جاری وارد دامنه نشده بودم. بنابراین جلسه من به مدت 11.25 روز ثبت نشد. DC من یک عدد تصادفی بین 9 و 14 انتخاب می کند - فرض کنید 13.44. این عدد (13.44) طولانی‌تر از فاصله زمانی بین دو رویداد آخر ورود به سیستم (11.25) است، بنابراین DC مقدار lastlogontimestamp من را بعد از آن تغییر نمی‌دهد. این راه اندازیجلسه بنابراین، ویژگی lastlogontimestamp، در حالی که مطمئناً مفید است، می‌تواند اطلاعات نادرستی را به مدت 14 روز حمل کند و به شما اجازه نمی‌دهد کاربرانی را که طی دو هفته گذشته در دامنه ثبت نام نکرده‌اند شناسایی کنید. با این حال، برای جستجوی کاربران غیرفعال، مثلاً در شش ماه گذشته، بسیار راحت است.

شما می توانید با استفاده از Get-ADUser یافتن کاربرانی که در 180 روز گذشته وارد نشده اند را تمرین کنید، اما PowerShell برای توسعه دهندگان AD با ایجاد یک فرمان search-adaccount که به شما امکان می دهد این عبارت را اجرا کنید، کار را برای ما آسان کرده است:

Search-account -accountinactive -usersonly -timespan "195"

درخواست ساده به نظر می رسد، اما دستور دارای دو نکته غیر واضح است. ابتدا توجه داشته باشیم نقل قول های دوگانه، اطراف شماره 195 ( نیاز اجباریپارامتر -timespan). دوم، به عدد 195 به جای 180 توجه کنید. همچنین به یاد داشته باشید که ویژگی lastlogontimestamp فقط برای دامنه‌ای با سطح عملکردی ویندوز 2003 یا بالاتر در دسترس است و دقیقاً برابر با 15 نیست. من در مورد دلیل چنین الزامی، نحوه یافتن ارزش دقیق افزوده شده، و همچنین یک نحو جایگزین برای جستجوی کاربران غیرفعال، در مقاله بعدی صحبت خواهم کرد.

مارک میناسی (www.minasi.com/gethelp) - سردبیر ارشد لاگ ویندوز IT Pro، مهندس سیستم خبره برای محصولات مایکروسافت

برترین مقالات مرتبط