از ویندوز سرور 2003 در کنسول Active Directory Users and Computers - ADUC قابلیت Saved Queries برای استفاده اضافه شد. در این قسمت یا فولدر میتوانیم Query را ایجاد، تغییر و ذخیره کنیم، همچنین میتوانیم خودمان با استفاده از فرامین LDAP هر Query که خواستیم ایجاد کنیم. برای این از Queryاستفاده میکنیم تا آسان و سریع به یک مجموعه از اشیاء اکتیو دایرکتوری برای یک کار مشخص دسترسی پیدا کرده و نظارت کنیم. اگر بخاطر داشته باشیم قبل از این قابلیت برای Query از اسکریپتهای ADSI استفاده می کردیم، اما با این قابلیت دیگر لازم نیست برای هر بار استفاده از Query آن را دوباره ایجاد کنیم بلکه میتوان همان Query را دوباره استفاده کرد که واقعا کار را برای ما آسان کرده است .
یادمان باشد که Query های ایجاد شده به صورت اتوماتیک در کنسول MMC فقط برای همان اکانتی که با آن لاگین کردیم ذخیره میشود. بهترین عمل برای استفاده از این است که یک کنسول MMC درست کرده و تمام Query ها را در آن ایجاد و ذخیره کنیم. شرح زیر این کار را به شما نشان میدهد :
-ابتدا از قسمت Start--->Run را انتخاب کرده و سپس را MMC مینویسیم و Ok را کلیک میکنیم .
File -را کلیک کرده و Add/Remove Snap-In را انتخاب میکنیم .
-در قسمت چپ Active Directory Users and Computers را انتخاب کرده، Add را کلیک میکنیم و بعد از ظاهر شدن در قسمت راست، Ok را کلیک میکنیم .
-این کنسول را به اسم Saved Queries ذخیره میکنیم .
برای ساختن Query های خودمان راه زیر را باید انجام دهیم : - بر روی Saved Queries کلیک سمت راست کرده، New را انتخاب میکنیم و سپس Folder را کلیک میکنیم. بطور مثال من میخواهم تمام های مربوط به یوزرها را در این فولدر قرار دهم، بنا بر این نام این فولدر را USERS میگذارم .
-بر روی فولدر USERS کلیک سمت راست کرده،New را انتخاب میکنیم و سپس Query را کلیک میکنیم .
-حال من میخواهم یوزرهایی را پیدا کنم که آدرس ایمیل ندارند، Name را No Email میگذارم، Description را Users without Email Address مینویسم، سپس Define Query را کلیک میکنم .
-قسمت Find را کلیک کرده و Custom Search را انتخاب میکنیم .
- حالا قسمت Advanced را کلیک میکنیم .
- حالا در قسمت Enter LDAP query فرمان LDAP که خودم میخواهم را مینویسم و سپس Ok را کلیک میکنم .
-دوباره Ok را کلیک میکنم و همانطور که میبینید، یوزرهایی که آدرس ایمیل ندارند فقط نمایش داده میشوند .
دیدن همه گروه های Domain Local Security Groups
(&(objectCategory=group)(groupType=-2147483644))
دیدن همه گروه های Global Security Groups
(&(objectCategory=group)(groupType=-2147483646))
دیدن همه گروه های Universal Security Groups
(&(objectCategory=group)(groupType=-2147483640))
دیدن همه گروه های Domain Local Distribution Groups
(&(objectCategory=group)(groupType=4))
دیدن همه گروه های Global Distribution Groups
(&(objectCategory=group)(groupType=2))
دیدن همه گروه های Universal Distribution Groups
(&(objectCategory=group)(groupType=8))
دیدن همه گروه های Distribution Groups
(&(objectCategory=group)(!groupType:1.2.840.113556.1.4.803:=2147483648))
گروه هایی نشان داده شوند که هیچ عضوی ندارند
(&(objectClass=group)(!member=*))
همه گروه هایی که یک یوزر مشخص در آن عضو است نشان داده شود، بطور مثال در پایین یوزر نامش Parsa است
(&(objectCategory=group)(member=CN=Parsa,CN=Users,DC=Contoso,DC=com))
همه گروه هایی که برایشان Description نوشته نشده است
(&(objectCategory=group)(!description=*))
تمام گروه هایی نشان داده شود که با IT یا Cisco آغاز میشوند
(objectCategory=group)(|(CN=IT*)(CN=Cisco*))
مثالهای مربوط به کامپیوتر کامپیوترهایی که ویندوز آنها NT 4.0 است نشان داده شود
(&(objectCategory=computer)(operatingSystemVersion=4*))
کامپیوترهایی که ویندوز آنها 2000 است نشان داده شود
(&(objectcategory=computer)(OperatingSystem=Windows 2000*))
کامپیوترهایی که ویندوز آنها 2003 و رویشان SP2 اینستال شده است نشان داده شود
(&(objectcategory=computer)(OperatingSystem=Windows Server 2003)(OperatingSystemServicePack=Service Pack 2))
کامپیوترهایی که ویندوز آنها 2008 است نشان داده شود اما آنهایی که ویندوز 2008R2 هستند نشان داده نشوند
(&(objectcategory=computer)(OperatingSystem=Windows Server* 2008*)(!OperatingSystem=Windows Server 2008 R2*))
کامپیوترهایی که ویندوز آنها 2008R2 است نشان داده شود
(&(objectcategory=computer)(OperatingSystem=Windows Server 2008 R2*))
همه کامپیوترهای غیر اکتیو یا Disable نشان داده شوند
(&(objectclass=computer)(userAccountControl:1.2.840.113556.1.4.803:=2))
همه دومین کنترولرها نشان داده شوند
(&(objectCategory=Computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))
همه دومین کنترولرها که ویندوز آنها 2008 یا 2008R2 است فقط نشان داده شوند
(&(primaryGroupId=516)(objectCategory=computer)(operatingSystem=Windows Server 2008*))
همه ویندوز سرورهای 2003 که Member Server هستند نشان داده شوند
(&(samAccountType=805306369)(!(primaryGroupId=516))(objectCategory=computer)(operatingSystem=Windows Server 2003*))
کامپیوترهایی که ویندوز آنها XP و رویشان SP3 اینستال شده است نشان داده شود
(&(objectcategory=computer)(OperatingSystem=Windows XP*)(OperatingSystemServicePack=Service Pack 3))
کامپیوترهایی که ویندوز آنها 7 است نشان داده شود
(&(objectcategory=computer)(OperatingSystem=Windows 7*))
کامپیوترهایی که ویندوز آنها 7 Ultimateاست نشان داده شود
(&(objectcategory=computer)(OperatingSystem=Windows 7 Ultimate))
همه سرورها گلوبال کاتالوگ Global Catalog - GC نشان داده شوند
(&(objectCategory=nTDSDSA)(options:1.2.840.113556.1.4.803:=1))
مثالهای مربوط به یوزر
یوزرهایی که آدرس ایمیل دارند
(objectCategory=person)(mail=*)
یوزرهایی که آدرس ایمیل ندارند
(objectCategory=person)(!mail=*)
یوزرهایی که بلاک Block شدند
(&(objectCategory=Person)(objectClass=User)(lockoutTime>=1))
یوزرهایی که از تاریخ 2011.10.15 ایجاد شدند
(objectCategory=person)(whenCreated>=20111015000000.0Z)
همه یوزرهای اکتیو یا فعال که از تاریخ 2011.10.15 ایجاد شدند
(&(sAMAccountType=805306368)(whenCreated>=20111015000000.0Z)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
یوزرهایی از تاریخ لاگین 2011.10.10 نکردند
(&(&(objectCategory=person)(objectClass=user)(LastLogonTimeStamp<=129626712000000000)))
همه یوزرهای اکتیوی نشان داده شوند که باید بعد از لاگین پسورد خود را تغییر دهند
(objectCategory=person)(objectClass=user)(pwdLastSet=0)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)
تمام یوزرهایی نشان داده شوند که باید پسورد خود را تغییر دهند
(&(objectCategory=person)(pwdLastSet=0))
یوزرهایی که غیر فعال هستند
(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))
دیدن همه یوزرهای یک گروه مشخص (بطور مثال گروه IT)
(objectCategory=user)(memberOf=CN=IT,CN=Users,DC=Contoso,DC=com)
نشان دادن یوزرهایی که در هیچ گروهی نیستند
(&(objectCategory=person)(objectClass=user)(!memberof=CN=Group,CN=Users,DC=Contoso,DC=com))
یوزرهایی که قابلیت Password Never Expires برایشان ست یا اکتیو شده است
(&(objectcategory=user)(userAccountControl:1.2.840.113556.1.4.803:=65536))
یوزرهایی که برایشان Profile Path ست یا تنظیم نشده است
(&(objectCategory=person)(!profilepath=*))
یوزرهایی که برایشان Logon Script تنظیم یا ست نشده است
(&(objectcategory=person)(!scriptPath=*))
یوزرهایی نشان داده شوند که یک Logon Script مشخص برایشان ست شده است (بطور مثال اسم اسکریپت Install.bat میباشد (
(&(objectCategory=person)(scriptPath=Install.bat))
تمام یوزرهایی نشان داده شود که تاکنون اصلا لاگین نکرده اند
(&(objectCategory=person)(objectClass=user))(|(lastLogon=0)(!(lastLogon=*)))
یوزرهایی که برایشان Description ست نشده است
(&(objectCategory=person)(!description=*))
تمام یوزرهایی که تلفن موبایل آنها با 0912 یا 0922 آغاز میشود
(&(objectCategory=person)(|(mobile=0912*)(mobile=0922*)))
یوزرهایی که نام آنها با Parsa آغاز میشود
(&(objectCategory=person)(CN=Parsa*))
یوزرهایی که نام آنها با Parsa یا Shafagh آغاز میشود
(objectCategory=person)(|(CN=Parsa*)(CN=Shafagh*))
تمام یوزرهایی که 3 بار یا بیشتر پسورد را اشتباه وارد کردند
(&(objectCategory=person)(badPwdCount>=3))
LDAP Query Basics Searching Active Directory Creating a Query Filter Newsletter #87: ADSIEdit and LDAP Query Intro - Mark Minasi Search Filter Syntax
Bruno Lewin - MSFT edited Revision 6. Comment: troubleshooting
Bruno Lewin - MSFT edited Revision 5. Comment: Attempt at troubleshooting display problem with this article
Great job on this, Patris!
Thanks Ed
thnaks :)
Excellent . It's even better than Sivarajan 's article !