سلام به همه بچه های ITPro، تو این آموزش میخوام با کمک دستورات Powershell تعداد زیادی یوزر به اکتیو دایرکتوری اضافه کنم .توی پاورشل دستورات به این صورت هست که اگه بخوایم شی جدید ایجاد کنیم اون دستور با new شروع میشه، اگه بخوایم شی اضاف کنیم دستور با Add شروع میشه، Remove واسه پاک کردن و ... مثلا واسه ایجاد یه OU جدید از دستور New-ADOrganizationUnit یا واسه حذف OU از Remove-ADOrganizationalUnit استفاده میکنیم. زمانی که دستور توی پاورشل اجرا میکنیم ،پاورشل تنها زمانی به ما پیغام نشون میده که دستور اجرا نمیشه پس هروفت دستورمون کامل اجرا شد چیزی نشون نمیده .خوب در ابتدا با چند تا دستور آشناتون میکنم بعد شروع میکنیم به برنامه نویسی تو محیط پاورشل .
همه دستور پشت سر هم تایپ کنید بعد کلید Enter بزنید .اسم فارست من WolfSecTeam.com هست و دوتا OU بنام Wolfuser و WolfComputer توی اکتیو دایرکتوری درست کردم که کامپیوترها توی WolfComputer هست و یوزرها هم توی WolfUser ، خوب حالا دستور بالا یه یوزر به نام mina mansuri توی WolfUser ایجاد میکنه .
خوب حالا که با چند تا دستور آشنا شدید می یایم و با استفاده از powershell یه برنامه مینویسیم، که یه فایل بعنوان ورودی میگیره و اتوماتیک تمام یوزرها رو ایجاد میکنه .این ورودی فقط شامل نام و نام خانوادگی یوزرهاست .یه مثال میزنم، من میخوام 10 تا یوزر اتوماتیک اضافه کنم به اکتیو دایرکتوری . این مقادیر ورودی هست که توی یه فایل ذخیره شده به نام fname_lname.txt :
و اینم کد برنامه که توی فایلی به نام get__user.ps1__ ذخیره شده (ps1 فرمت فایل های پاورشل هست ) فقط باید خط 16 و 17 توی کد بهم بچسبونید (17 ادامه 16 هست، چون این دو خط باید توی یه خط پشت سرهم باشن و بخاطر این که تمام کدها تو عکس بیوفته من توی دو خط نوشتم )
توضیح کد:
موقعی که میخوایم یه متغیر توی پاور شل تعریف کنیم ابتدای اون $ میزاریم. خود پاورشل دارای چند تا متغیر از پیش تعریف شده هم هست مثل false$ یا true$ .واسه توضیحات از # استفاده میشه .
ما یه قانون برای خودمون گذاشتیم که نام کاربری یوزر اینجوری تولید میشه که میایم کاراکتر اول اسم کوچک بهمراه نام خانوادگی بهم میچسبونیم میشه نام کاربری .
خط یازدهم : تابع Substring میاد از کاراکتر صفرم به تعداد یک کاراکتر (که میشه کاراکتر اول fname$ ) برای ما برمیگردونه و میریزه توی متغیر finitial$ .
خط دوازدهم : مقدار متغیر item$ میچسبونه به کاراکتر ( و بعد میچسبونتش به fname$ و چند تا فاصله و lname$ .
"n`" : این کاراکتر عمل enter واسه ما توی چاپ انجام میده (یعنی میخوایم بعد از اینکه برنامه اجرا شد خروجی بصورت زیر باشه)
ولی اگه "n`" از آخر کد حذف کنیم خروجی بصورت زیر نمایش داده میشه
خط سیزدهم : مقدار متغیر finitial$ و lname$ را به هم میچسبونه و میریزه توی متغیر user$ (به عنوان نام کاربری یوزر)
خط چهاردهم : متغیر user$ به wolfsecteam.com@ میچسبونه و UPN تشکیل میده .
خط پانزذهم : مسیر ساخت یوزر ها
خط شانزدهم هم که دستور ساخت یوزر هست .
و در آخر خط هجدهم هم یه خروجی واسه ما چاپ میکنه که میگه این یوزر ها اضافه شدن به Active Directory
فقط یه نکته باقی میمونه و اونم اینکه پاورشل بصورت پیشفرض اجازه اجرای هیچ کدی روی سرور نمیده (این یه فیچر امنیتی هست) مگه اینکه تنظیمات پیشفرضشو تغییر بدیم بصورت زیر :
اگه بخوایم بدونیم پیشفرض پاورشل واسه اجرای کد چیه، از دستور Get-ExecutionPolicy که قبلاً ذکر کردم استفاده میکنیم .
که پیشفرض Restricted هست و اگه بخوایم کدمونو اجرا کنیم با خطا روبه رو میشیم .
حالا چند تا از مقادیری که میشه بجای این مقدار ست کنیم براتون توضیح میدم .
1) اگه ExecutionPolicy با مقدار Unrestricted ست کنیم یعنی اجازه اجرای هرکدی داریم حالا اون کد میتونه توسط یه ناشر معتبر تایید شده باشه (تایید بشه یعنی یه ناشر معتبر روی کد امضای دیجیتال بزاره) یا هم تایید نشده باشه یا اینکه خودمون اون کد بنویسیم، در هرصورت هر کدی اجازه اجراشدن داره .
2) RemoteSigned : بهترین گزینه واسه ست کردن این مقدار هست ، موقعی که این مقدارو ست میکنیم پاورشل اجازه اجرای کدهای معتبر(دارای امضای دیجیتال) میده حتی کدهایی که خودمون اونارو نوشتیم هم اجازه اجرا دارن ولی کدهای که امضای دیجیتال ندارن اجازه اجرا ندارن .
3) AllSigned : اگه این مقدارو ست کنیم فقط کدهایی که امضای دیجیتال دارن اجازه اجرا شدن دارن حتی کدی هم که خودمون نوشتیم هم اجازه اجرا ندارن .
پس درنتیجه ExecutionPolicy با RemoteSigned ست میکنیم که بهتزن گزینه هست .
و حالا میتونیم کدی که نوشتیم اجرا کنیم و نتیجه رو ببینیم .
برنامه یه OU به نام ITUser برای ما ایجاد کرد و یوزرهارو توی اون OU ساخت .
اینم نتیجه پایانی
امیدوارم این آموزش براتون مفید بوده باشه .
نویسنده : مهدی رزمجویی
منبع : انجمن تخصصی فناوری اطلاعات ایران
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
توسعه دهنده SQL و PHP علاقه مند به مهندسی معکوس
توسعه دهنده C# ، ++C ، PHP ، SQL ، محقق بدافزار ، توسعه دهنده آنتی ویروس پادویش ، توسعه دهنده آزمایشگاه بدافزار ، علاقمند به مهندسی معکوس
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود