فعال‌سازی چند کاربر در اکتیودایرکتوری با استفاده از پاورشل

چطوری با استفاده از پاورشل چندتا کاربرو همزمان فعال کنم؟

فعال‌سازی چند کاربر در اکتیودایرکتوری با استفاده از پاورشل

پاورشل یک ابزار اسکریپت نویسی عالیه! نه تنها باعث صرفه جویی توی زمان میشه، بلکه انعطاف پذیری بیشتری برای انجام Taskهای تکراری در اختیار ما قرار میده. می‌شه گفت تقریباً تمام Roleها و Featureهای ویندوز از طریق پاورشل قابل مدیریت هستن.

شما می‌تونید از cmdletهای سیستم عامل ویندوز برای انجام Taskهای مختلف استفاده کنید. مثل بررسی وضعیت یک سرویس ویندوزی در چندتا کامپیوتر مختلف، نمایش لیست کامل نرم افزارهای نصب شده در ویندوز و غیره.

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

توجه: برای استفاده از این cmdletها باید ماژول ActiveDirectory را در پاورشل نصب کنید. برای این کار Powershell را با دسترسی Administrator باز کنید و دستور زیرو وارد کنید:

import-module ActiveDirectory

فعال کردن چندین User Account

به صورت پیشفرض، زمانی که یک کاربر را در اکتیودایرکتوری ایجاد می‌کنید، در وضعیت Enable قرار می‌گیره ولی گاهی ممکنه به دلایلی چندین User را غیرفعال کنید و بعد از مدتی نیاز به فعالسازی مجدد اونا داشته باشیم.

با اینکه از طریق کنسول Active Directory Users and Computers میشه یکی یکی، اقدام به فعالسازی Userها کرد، اما اگر تعداد اونا زیاد باشه، این کار خیلی زمانبر و کلافه کننده خواهد بود. اینجاست که پاورشل به کمک ما می‌آد.

فرض کنید قصد فعال کردن چندین کاربر در یک OU خاصو دارید. در این حالت میشه از دستور پاورشل زیر استفاده کرد:

Get-ADUser -Filter "Name -like "*"" -SearchBase "OU=OU1, OU=TestUsers, DC=Beheshti, DC=Local" | Enable-ADAccount

همچنین دستور زیر نیز زمانی استفاده میشه که نام کاربران در یک فایل CSV ذخیره شده باشه:

$UserFile = "C:\Temp\Userfile.CSV"

Remove-item $UserFile -ErrorAction SilentlyContinue
$ReportFile = "C:\Temp\UserStatus.CSV"

$ThisSTR = "User Name, Account Status"
Add-Content $ReportFile $ThisSTR

Foreach ($UserName in Get-Content "$UserFile")
{
$Error.Clear()
Enable-ADAccount -Identity "$UserName"
IF ($Error.Count -ne 0)
{
$ThisSTR = $UserName+", Was enabled successfully."
Add-Content $ReportFile $ThisSTR
}
else
{
$ThisSTR = $UserName+", Error enabling User account"
Add-Content $ReportFile $ThisSTR
}
}

زمانی که عملیات اسکریپت بالا تمام شد، یک فایل گزارش به آدرس “C:\Temp\Userfile.CSV” ایجاد میشه که نام کاربران، وضعیت و دلیل فعال نشدن کاربر (در صورتی که کاربر به دلایلی فعال نشده باشد) را نمایش میده.