با سلام خدمت همه عزیزان و همراهان Theways
هدف این مقاله :
(آشنایی با برخی از کامند های کاربردی اکتیودایرکتوری با استفاده از Powershell در ویندوزسرور۲۰۱۶)
راهنمای دستورات :
عبارت CN= میتواند نام یک یوزر یا کامپیوتر یا گروه باشد.
عبارت DC= ساختار نام دامنه دامین ما می باشد که بصورت زیر نوشته می شود :
Domain Name : Mcse.local —-> DC=Mcse,DC=local
عبارت OU= برای فراخوانی یک Organizational Unit استفاده میشه.
عبارت Dsrm برای حذف کردن یک object از ADUC استفاده میشه.
در همه ی دستورات زیر بجای عبارت های Group_Name , User_Name,OU_Name اسم گروه یا یوزر یا OU موردنظرتان را وارد میکنید.
با استفاده از عبارت زیر مکان و جایگاه object مورد نظر خود را در محیط Powershell فراخوانی میکنید:
“CN= User_Name,OU=OU_Name,DC=mcse,DC=local”
از دستور Set-ADUser برای تغییر Attribute ها در Object های مختلف میتوانید استفاده کنید.
از دستور New-ADGroup برای ساخت یوزر در ADUC میتوانید استفاده کنید.
از دستور New-ADOrganizationalUnit برای ساخت OU جدید میتوانید استفاده کنید.
از دستور Rename-ADObject برای تغییرنام یوزر و گروه و … میتوانید استفاده کنید.
از دستور Move-ADObject برای انتقال Object ها (یوزرها و کامپیوتراکانت ها و گروه ها) میتوانید استفاده کنید.
از دستور Remove-ADGroupMember هم برای حذف تعدادی از یوزرها از یک گروه خاص میتوانید استفاده کنید.
*ساخت یوزر اکانت در اکتیودایرکتوری در یک OU خاص :
Dsadd.exe User “CN= User_Name,OU=OU_Name,DC=mcse,DC=local” -samid ” User_Name ” -fn ” User_Name ” -disabled no -mustchpwd yes -upn User_Name @mcse.local -pwd “P@ssw0rd”
*پاک کردن یک یوزر اکانت از OU موردنظر :
Dsrm “CN=User_Name,OU= OU_Name,DC=mcsa,DC=local”
*تغییردادن Attribute های یک یوزر خاص :
Set-ADUser ‘CN=User_Name,OU=OU_Name,DC=mcse,DC=local’ -HomePage ‘http://Test.com’ -Department IT -street VictorHugo -email User_Name@gmail.com -City Paris
*ساخت گروه در اکتیودایرکتوری :
New-ADGroup “Group_Name” -Path “OU=OU_Name,DC=mcse,dc=local” -GroupCategory Security -GroupScope Global -PassThru –Verbose
*پاک کردن گروه از اکتیودایرکتوری:
Dsrm “CN=Group_Name,OU=OU_Name,DC=mcse,DC=local”
*گزارش گرفتن از یوزرهای موجود در Active Directory :
Get-ADUser -filter *
*گزارش گرفتن از گروه های موجود در Active Directory :
Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory,groupscope,memberof,members
*ساخت OU در اکتیودایرکتوری :
New-ADOrganizationalUnit “OU_Name”
*پاک کردن یک OU خاص :
Get-ADOrganizationalUnit -filter “Name -eq ‘OU_Name'” | Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $False
Get-ADOrganizationalUnit -filter “Name -eq ”OU_Name ‘” | Remove-ADOrganizationalUnit –Recursive
*تغییرنام یک OU خاص :
Rename-ADObject -Identity “OU=OU_Name,DC=mcse,DC=local” -NewName OU_Name
*غیرفعال کردن Protect Object برای یک OU خاص :
Set-ADOrganizationalUnit -Identity “OU=OU_Name,DC=mcse,DC=local” -ProtectedFromAccidentalDeletion $False
*انتقال یک OU به یک OU دیگر :
Set-ADOrganizationalUnit -Identity “OU=OU_Name,DC=mcse,DC=local” -ProtectedFromAccidentalDeletion $False
Move-ADObject -Identity “OU=OU_Name,DC=mcse,DC=local” -TargetPath “OU=OU_Name,DC=mcse,DC=local”
برای فعال کردن Protect object در انتهای دستور همانند تصویر زیر از $True استفاده کنید :
*انتقال یک کامپیوتر یا یک یوزراکانت از یک OU به یک OU دیگر:
Move-ADObject -Identity “CN=User_Name,OU=OU_Name,DC=mcse,DC=local” -TargetPath “OU=OU_Name,DC=mcse,DC=local”
*عضو کردن یک یوزر در یک گروه :
Get-ADUser -SearchBase ‘CN=User_Name,OU=OU_Name,DC=mcse,DC=local’ -Filter * | ForEach-Object {Add-ADGroupMember -Identity ‘Group_Name’ -Members $_ }
*عضوکردن یوزرهای موجود در یک OU در یک گروه خاص :
Get-ADUser -SearchBase ‘OU=OU_Name,DC=mcse,DC=local’ -Filter * | ForEach-Object {Add-ADGroupMember -Identity ‘Group_name’ -Members $_ }
*عضوکردن گروه های موجود در یک OU در یک گروه خاص :
Get-ADGroup -SearchBase ‘OU= OU_Name,DC=mcse,DC=local’ -Filter * | ForEach-Object {Add-ADGroupMember -Identity ‘Group_name’ -Members $_ }
*عضوکردن یک یوزرخاص در چند گروه :
“Group_Name1″,” Group_Name2″ | Add-ADGroupMember -Members `
(Read-Host -Prompt “Enter User Name”)
*عضو کردن همه ی یوزرهای موجود دریک گروه در گروه دیگر :
Get-ADGroupMember “Group_Name” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “Group_Name” -Members $_}
*پاک کردن یک یا چند یوزر یا کامپیوتراکانت یا گروه از یک گروه خاص:
Remove-ADGroupMember -Identity Group_Name -Members User_Name
*پاک کردن یک یوزراکانت از همه ی گروه های موجود در اکتیودایرکتوری :
Get-ADUser ‘CN= User_Name,OU= OU_Name,DC=mcse,DC=local’ -Properties MemberOf | ForEach-Object {
$_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false}
*پاک کردن یک گروه خاص از همه ی گروه های موجود در اکتیودایرکتوری :
Get-ADGroup ‘CN= Group_Name,OU= OU_Name,DC=mcse,DC=local’ -Properties MemberOf | ForEach-Object {
$_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false}
خیلی ممنون که همراه ما بودید.
نویسنده : Mahdi Faraji
Theways سایتی جهت ارائه مطالب آموزشی در حوزه IT
- Design
سلام مهندس فرجی ، خیلی عالی بود و پر از نکته تشکر از زمانی که گذاشتید.
سلام مهندس عزیز ، خواهش میکنم شما لطف دارید
عالی بود مهندس فرجی عزیز ، واقعا این کامند ها و Cmdlet ها با وجود کوچیک بودن ! خیلی وقت ها کارهای بزرگی انجام میدن و بسیار کاربردی هستن
مخصوصا که خیلی وقت ها همه کانفیگ های که از نظر محیط GUI شدنی نیستن از طریق CLI کاملا قابل انجام هستن ، کاملا توی روال مایکروسافت مشهود که حرکت به سمت CLI با سرعت خیلی زیاد در حال رشد و گسترش هست
من از این بیشتر از همه خوشم اومد : ” عضو کردن همه ی یوزرهای موجود دریک گروه در گروه دیگر ”
ممنون از وقتی که گذاشتی
سلام مهندس اسحاقی عزیز ، ممنونم ، بله دقیقا همان طور که فرمودید این دستورات خیلی وقت ها برای پیاده سازی سناریویی که در ذهن داریم و قادر به انجام آن در محیط GUI نیستیم کاربردی هستند.
خواهش میکنم انجام وظیفه بود.
سلام و وقت بخیر
ممنون از این کامندهای کاربردی.
درصورتیکه از یک ou که شامل ۹۰ گروه است، بخواهیم از اعضای گروهها، گزارش بگیریم، چه کامندی مناسب است.
فرض کنید یک ou به اسم منابع انسانی است که ۹۰ نوع گروه برای کارمندان منابع انسانی تعریف شده است. که هر کارمند ممکن است به تعداد محدودی از این گروهها دسترسی داشته باشد. حال میخواهیم ببینیم به هر گروه مرتبط با منابع انسانی(گروهای موجود در این ou)، چه یوزرهایی دسترسی دارند!
با تشکر
گ
سلام عالی بود مهندس