خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


دستور Get-ADUser - یافتن اطلاعات دقیق کاربران در اکتیودایرکتوری با Powershell

دستور Get-ADUser - یافتن اطلاعات دقیق کاربران در اکتیودایرکتوری با Powershell
دستور Get-ADUser یک دستور پاورشل است که با کمک آن می توانید اطلاعات و جزئیات کاربران در اکتیودایرکتوری را بدست آورید. شما می توانید با استفاده از Get-ADUser مقدار هر Attribute کاربر AD را مشاهده کنید، لیستی از کاربران در دامبن را با Attribute های لازم نمایش دهید و در نهایت آنها را در CSV می توانید Export بگیرید و از پارامترها و فیلترهای مختلف برای انتخاب کاربران دامین استفاده کنید.

نرم افزار سامانه مودیان راهکار
دستور Get-ADUser از PowerShell 2.0 در دسترس شماست. پیش از دستور Get-ADUser برای به دست آوردن اطلاعات Attribute کاربر از ابزارهایی مانند ADUC، vbs scripts، dsquery استفاده می شد. پس از این ابزارهخایی که ذکر شد به جای دستور Get-ADUser هم می توانید استفاده کنید.



How to Find AD User and List Properties with Get-ADUser?

برای استفاده از RSAT-AD-PowerShell module باید Powershell را باز کرده و ماژول را با دستور زیر import کنید.

Import-Module activedirectory

ماژول RSAT-AD-PowerShell بصورت پیشفرض درویندوز سرور 2012 و ورژن های جدیدتر نصب است(البته وقتی ماژول Active Directory Domain Services را نصب کنید). پس دستوراتی که در ادامه گفته می شود را می توانید روی دامین کنترلرها بدون مشکل اجرا کنید ولی اگر در سیستم های جوین شده به دامین مانند ویندوز سرورها یا ویندوز 10، از این ماژول استفاده کنید برای کارهای اضافه تری انجام دهید. اگر بخواهید روی یک ویندزو سرور که جوین به دامین شده، این ماژول را نصب کنید، دستور زیر را در پاورشل اجرا کنید:

Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature

دستور Get-ADUser - یافتن اطلاعات دقیق کاربران در اکتیودایرکتوری با Powershell
در ویندوز 10 هم به طریق زیر می توانید ویژگی Active Directory Module for Windows PowerShell را نصب کنید:

دستور Get-ADUser - یافتن اطلاعات دقیق کاربران در اکتیودایرکتوری با Powershell
در ویندوز 10 ورژن 1809 و جدیدتر با اجرای دستور زیر در پاورشل می توانید ویژگی مذکور را نصب کنید:

Add-WindowsCapability -online -Name "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0"

توجه داشته باشید که با اجرای دستور فوق اگر سیستم تان به اینترنت دسترسی نداشته باشد به ارور مواجه خواهید شد و حتما اکامتی که با آن به ویندوز لاگین می کنید، دسترسی Administrator باید داشته باشد.
خب، حالا که ماژول فوق را نصب کردیم(که البته الزاما نیازی نبود که در ویندوز 10 یا سایر ویندوز سرورهای جوین شده به دامین نصب کنیم)، حالا می توانیم برای اجرای بدست آوردن ویژگی های کاربران اکتیودایرکتوری از دستور Get-ADuser استفاده کنیم.
خب، با استفاده از دستور زیر لیست کاملی از پارامترها یا آرگومان های دستور Get-ADUser را می توانید مشاهده کنید:

help Get-ADUser

برای استفاده از دستور Get-ADUser حتما نیازی نیست که با اکانت administrator یا کاربرانی که در گروه admin هستند به سیستم لاگین کنید. هر کاربر تعریف شده در اکتیودایرکتوری می تواند از دستور Get-ADUser برای بدست آوردن ویژگی ها و attribute های اشیاء اکتیودایرکتوری استفاده کند(به استثنای موارد خاص و محرمانه).
از دستور زیر برای نمایش برای نمایش تمامی یوزر اکانتهای دامین می توانید استفاده کنید:

Get-ADUser -filter *

توضیه می شود که این دستور را در دامین هایی که کاربران بسیار زیادی در اکتیودایرکتوری تعریف شده اجرا نکنید چون Workload زیادی روی سرور می گذارد.
برای اجرای یک کوئری در یک دامین کنترلر خاص از سوئیچ -server استفاده می کنیم. در دستور زیر ویژگی های یک کاربر خاص از دامین کنترلر مشخص شده پرسیده می شود. به جای دامین کنترلر و نام کاربر، پارامترهای خودتان را جایگزین کنید.

Get-ADUser -Server pdc.khoshamoz.local -Identity h.mohammadi

دستور Get-ADUser - یافتن اطلاعات دقیق کاربران در اکتیودایرکتوری با Powershell
بصورت پیشفرض دستور Get-ADUser از 120 ویژگی یا attribute کاربر فقط 10 تای آن را برمی گرداند. مواردی مثل DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, account status (Enabled: True/False according to the UserAccountControl AD attribute) را شامل می شود ولی مثلا اطلاعات مربوط به آخرین باری که رمز عبور کاربر تغییر کرده و تاریخ انقضا رمز، در خروجی دستور نشان داده نمی شود. برای نمایش اطلاعات دقیق در مورد تمام Attribute های کاربر موجود، این دستور را اجرا کنید:

Get-ADUser -identity h.mohammadi -properties *

دستور Get-ADUser - یافتن اطلاعات دقیق کاربران در اکتیودایرکتوری با Powershell
دستور Get-ADUser با پارامتر Properties * که در دستور فوق با رنگ قرمز مشخص شده، لیستی از تمام ویژگی های کاربر AD و مقادیر آن را نمایش می دهد. اما همه ویژگی ها مناسب کار ما نیست و فقط برخی ویژگی ها را قصد داریم در خروجی دستور نمایش دهیم.

PasswordExpired
PasswordLastSet
PasswordNeverExpires
LastLogonTimestamp

Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp

دستور Get-ADUser - یافتن اطلاعات دقیق کاربران در اکتیودایرکتوری با Powershell
اکنون در داده های کاربر اطلاعات مربوط به status (Expired: True/False)، تاریخ آخرین تغییر رمز عبور، زمان آخرین لاگین(lastlogontimestamp) را می توانید مشاهده کنید. برای نمایش این اطلاعات در یک نمایش جدول راحت تر و حذف همه ویژگی های غیرضروری ، از Select-Object -Property یا Format-Table استفاده کنید:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

دستور Get-ADUser - یافتن اطلاعات دقیق کاربران در اکتیودایرکتوری با Powershell

Get-ADUser: Multiple OU’s Search with SearchBase

با کمک پارامتر SearchBase می توانید جستجو را فقط در یک OU خاص انجام دهید:

Get-ADUser -SearchBase 'OU=London,DC=khoshamoz,DC=local' -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

اگر نیاز است که کاربران را از چندین OU مختلف انتخاب کنید، از اسکریپت پاورشل زیر استفاده کنید:

$OUs = "OU=NY,DC=khoshamoz,DC=ir","OU=LA,DC=khoshamoz,DC=ir","OU=MA,DC=khoshamoz,DC=ir"
$OUs | foreach {Get-ADUser -SearchBase $_ -Filter * |select Name, Enabled}

How to Get Emails From Active Directory Using PowerShell?

Email یکی از attribute های کاربر در اکتیودایرکتوری است. برای لیست کردن آدرس های ایمیل کاربران باید EmailAddress را به ویژگی های Get-ADUser اضافه کنید.

Get-ADUser -filter * -properties EmailAddress -SearchBase 'OU=Paris,OU-Fr,DC=khoshamoz,DC=ir'| select-object Name, EmailAddress

دستور Get-ADUser - یافتن اطلاعات دقیق کاربران در اکتیودایرکتوری با Powershell
لیستی از حساب های کاربری فعال با آدرس ایمیل:

Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Format-Table

برای دریافت لیست کاربران Active Directory بدون آدرس ایمیل:

Get-ADUser -Filter * -Properties EmailAddress | where -Property EmailAddress -eq $null

در دستور زیر قصد داریم تمامی آدرس ایمیل های کاربران را در مسیر مشخص شده ای در فرمت CSV خروجی بگیریم و مثلا بعدا در نرم افزارهای ایمیل Import کنیم. برای این منظور از دستور زیر استفاده می کنیم:

Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $env:temp\adress_list.csv

فایل CSV در فولدر Temp کاربر ایجاد می شود.

Get-ADUser: Export AD Users to CSV/TXT
در دستور زیر لیستی از کاربران با attribute هایی که می توان از آنها Export در فایل متنی یا Text گرفت.

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:\temp\users.txt

یا می توانید لیست کاربران AD را در یک فایل CSV خروجی بگیرید.

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | where {$_.name -like "*Dmitry*"} | sort-object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c:\tmp\user-passwords-expires.csv -Append -Encoding UTF8

Using Get-ADUser with Filter Items

با استفاده از پارامتر -Filter می توانید لیست حساب های کاربری را با یک یا چند ویژگی فیلتر کنید. می توانید یک attribute خاص را بعنوان پارامتر پارامتر استفاده کنید. اگر از پارامتر -Filter استفاده می کنید، Get-ADUser فقط کاربرانی را که با پارامترهای فیلتر مطابقت دارند لیست می کند. به عنوان مثال، می خواهیم اکانتهای کاربری اکتیو (Enabled) که نام آنها حاوی "Dmitry" است را لیست کنیم

Get-AdUser -Filter "(Name -like '*Dmitry*') -and (Enabled -eq 'True')" -Properties * |select name,enabled

دستور Get-ADUser - یافتن اطلاعات دقیق کاربران در اکتیودایرکتوری با Powershell

Get-ADUser Usage Examples

اجازه دهید چند نمونه دستور مفید برای کوئری از کاربران Active Directory با فیلترهای مختلف نشان دهیم. می توانید آنها را با هم ترکیب کنید تا لیست لازم از user AD را بدست آورید:
مثلا کاربران AD را نشان دهید که نام آنها با Joe شروع می شود:

Get-ADUser -filter {name -like "Joe*"}

برای محاسبه تعداد کل حساب کاربری در Active Directory می توانید از PowerShell استفاده کنید:

Get-ADUser -Filter {SamAccountName -like "*"} | Measure-Object

برای یافتن کاربران غیرفعال در اکتیودایرکتوری:

Get-ADUser -Filter {Enabled -eq "False"} | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table

با دستور زیر می توانید تاریخ ایجاد حساب های کاربری در Active Directory را بررسی کنید:

get-aduser -Filter * -Properties Name, WhenCreated | Select name, whenCreated

لیست کاربرانی که در 24 ساعت گذشته ایجاد شده اند:

$lastday = ((Get-Date).AddDays(-1))
Get-ADUser -filter {(whencreated -ge $lastday)}

لیست کاربرانی که پسوردهای آنها منقضی یا Expire شده است:

Get-ADUser -filter {Enabled -eq $True} -properties name,passwordExpired| where {$_.PasswordExpired}|select name,passwordexpired

لیست کاربرانی که در 90 روز گذشته پسورد خود را تغییر نداده اند:

$90_Days = (Get-Date).adddays(-90)
Get-ADUser -filter {(passwordlastset -le $90_days)}

برای دریافت عکس کاربر از Active Directory و ذخیره آن در یک فایل jpg، دستورات زیر را اجرا کنید:

$usr = Get-ADUser h.mohammadi -Properties thumbnailPhoto
$usr.thumbnailPhoto | Set-Content h.mohammadi.jpg -Encoding byte

لیست کردن گروه هایی که کاربر مورد نظر ما عضو آنهاست:
Get-AdUser h.mohammadi -Properties memberof | Select memberof -expandproperty memberof

لیست کردن کاربران از یک ou که عضو یک گروه خاص هستند:

Get-ADUser -SearchBase 'OU=Rome,OU=Italy,DC=khoshamoz,DC=ir' -Filter * -properties memberof | Where-Object {($_.memberof -like "*CEO*")}

مثال ها از این دست بسیار زیاد است. در تمامی مثال پارامترهای خودتان را جایگزین کنید. OU ها یا گروه ها، Attribute ها و بسیاری مواردی که در این مطلب و مثال ها استفاده شد را با مقادیر خود جایگزین کنید.


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز