مدیریت با PowerShell – قسمت دوم

Namespace، Provider و PSDrives

cmdletها روی اشیاء در یک فضای نامی (Namespace) عمل می کنند. به عنوان مثال یک folder روی disk یک namespace است. این فضاهای نامی توسط Provider (فراهم آورنده) ساخته می شوند. به عنوان مثال File System دارای یک Provider است که به این ترتیب می تواند به صورت مستقیم با آن در ارتباط باشد و روی آن عملیات انجام دهد. این مسئله برای Registry هم صادق است.

در PowerShell فضای نامی که توسط هر Provider ساخته شده است توسط یک PSDrive معین می گردد. PowerShell به صورت خودکار یک PSDrive برای هر کدام از Drive های ویندوز می سازد. PowerShell اما استفاده از PSDrive را به مرحله ای فراتر می برد و با استفاده از ساخت PSDrive برای منابعی که متداولا استفاده می گردد، سبب می گردد دسترسی به منابع از طریق PowerShell آسان تر گردد. به عنوان مثال HKCU مربوط به HKEY_CURRENT_USER و HKLM مربوط به HKEY_LOCAL_MACHINE از Registry است. برای مشاهده لیست کامل PSDrive ها دستور زیر را وارد کنید:

Get-PSDrive

PowerShell همه فن حریف

PowerShell یک رابط متنی مدرن، ساده و یکپارچه است که با استفاده از آن می توانید عملیات پیچیده را به راحتی بنویسید و طعم شیرین مدیریت روی خط فرمان را بچشید. مدیریت با استفاده از PowerShell به تمام مدیران توصیه می گردد چرا که با استفاده از این ابزار پیشرفته می توان بهره وری را افزایش داد. مشابه هر رابط متنی خوب دیگری، با استفاده از فشردن کلید Tab می توانید تکمیل دستور را بر عهده PowerShell قرار دهید و فقط حروف ابتدایی دستور را تا زمانی که قابل تمیز دادن باشد وارد کنید.

Active Directory Provider

PowerShell دارای یک Provider برای Active Directory است. ابتدایی ترین مزیت آن این است که با استفاده از این Provider می توان به همان راحتی که فایل ها را در دیسک کاوش می کنید، در Active Directory کاوش کنید. برای دسترسی به PSDriver مربوط به Active Directory کافی است دستور زیر را وارد کنید:

cd AD:

nps1

همانطور که مشاهده می کنید خط Prompt به AD تغییر می کند و AD اشاره به Root Directory Service Entry یا همان RootDSE دارد. اکنون با دستور Dir می توانید لیست محتویات را مشاهده کنید و با دستور  cd می توانید به شاخته های مختلف بروید. در اینجا می خواهیم در OU=Sales یک OU جدید برای مسئولین قرارداد ایجاد کنیم:

cd AD:
cd “dc=erfantaheri,dc=com”
cd “ou=Sales”
New-Item -Name “ou=Contractors” –ItemType organizationalUnit

همچنین می توان با استفاده از پارامتر path بدون انتقال به شاخته مورد نظر مستقیما در مسیر مطلوب آیتم را ایجاد کرد. با استفاده از Alias ها دستور بسیار کوتاه تر از این می تواند باشد.

New-Item -Name “ou=Contractors” –ItemType organizationalUnit –path “ou=sales, DC=erfantaheri, DC=com”

nps2

شیئ کاربر در PowerShell

شاید ساخت اشیاء در محیط گرافیکی برای شما راحت تر به نظر برسد، اما این فرصت را به خود بدهید که هر عملی را که در محیط گرافیکی انجام می دهید در PowerShell نیز امتحان کنید. با استفاده از دستور زیر می توانید یک User Account جدید ایجاد کنید. در صورتی که مسیر را مشخص نکنید، در مسیر پیش فرض یعنی User Container ساخته می شود.

New-ADUser -Path “ou=User Accounts,dc=contoso,dc=com” -Name “UserName”
-SAMAccountName “UserSAM”  -AccountPassword (ConvertTo-SecureString -AsPlainText “Pa$$w0rd” -Force) –Enabled $ture

PowerShell اجازه ی دسترسی cmdlet ها را به منابع محرمانه از جمله کلمه عبور بدون رمزنگاری نمی دهد. برای همین منظور اگر قصد دارید کلمه عبور را به صورت Plain Text (متن رمزنشده) وارد کنید لازم است ابتدا آن را به متن رمز شده تبدیل کنید. در دستور فوق ConvertTo-SecureString این عمل را انجام می دهد. اکانت های ساخته شده به صورت پیش فرض Disabled می باشند و با استفاده از پارامتر Enabled اکانت به صورت فعال ساخته می شود.

nps3

با استفاده از ساخت یک قالب (Template) ساخت کاربر می تواند سریع تر از پیش هم گردد.

$user = Get-ADUser “CN=_Sales Template,OU=User Accounts,DC=erfantaheri,DC=com”
-Properties MemberOf,Title,Department,Company,PhysicalDeliveryOfficeName

New-ADUser -path “ou=User Accounts,dc=erfantaheri,dc=com” -Instance $user -Name “UserName”
-SAMAccountName “UserSAM”

توجه داشته باشید که با استفاده از تعیین پارامتر ها در دستور New-ADUser می توانید موارد تعیین شده در قالب را override کنید.

همچنین با استفاده از دستور Set-ADUser می توانید Attribute های مختلف مربوط به یک User Account را تنظیم کنید.:

Set-ADUser –Identity Richi -EmailAddress “richi@erfantaheri.com”

امکان Pipe کردن اکانت کاربری نیز وجود دارد:

Get-ADUser -Identity richi| Set-ADUser -EmailAddress “richi@erfantaheri.com”

با استفاده از یک متغیر کمکی نیز می توانید یک یا دسته ای از attribute ها را Set کنید:

$user = Get-ADUser -Identity richi
$user.mail = “richi@erfantaheri.com”
Set-ADUser -Instance $user

در خط دوم دستور فوق، از LDAP Name مربوط به یک Attribute به نام Mail استفاده شده است که الزاما نام هر Attribute با LDAP Name آن یکسان نمی باشد. با استفاده از Attribute Editor می توانید LDAP Name های مختلف را به آسانی بیابید.

با استفاده از دستور Remove-ADUser می توانید یک شیئ کاربر را حذف کنید.

مدیریت کلمه های عبور

در PowerShell امکان مدیریت Password ها نیز وجود دارد. این امر با استفاده از دستور Set-ADAccountPassword صورت می گیرد.

Set-ADAccountPassword -Identity “mary.north” -Reset

Set-ADAccountPassword -Identity “manager” -Reset
-NewPassword (ConvertTo-SecureString -AsPlainText “Pa$$w0rd” -Force)

Import کردن کاربران از یک Database

با استفاده از pipe کردن، این عملیات بسیار ساده تر از قبل صورت می گیرد. در اینجا با استفاده از یک فایل CSV آماده قصد داریم هزاران کاربر را در Active Directory اضافه کنیم. برای اطلاعات پیش زمینه مراجعه شود به “خودکار کردن فرآیند ساخت کاربران” توجه داشته باشید در خط ابتدایی فایل csv لازم است پارامتر های دستور New-ADUser درج شده باشد و مقادیر آن ها در خطوط بعد به همان ترتیب در خط اول. به عنوان مثال:

name,sAMAccountName,GivenName,Surname
John Woods,john.woods,Johnathan,Woods
Kim Akers,kim.akers,Kimberly,Akers

در نهایت تنها کافی است به سادگی یک خط pipe بنویسیم:

import-csv “C:\Users\Administrator\Desktop\newusers.csv” | New-ADUser -organization Contoso

اگر attributeهایی در فایل CSV تعیین نشده است، می توانید به راحتی آن ها در خود pipe معین کنید. همانند مثال فوق.

شیئ گروه در PowerShell

اکنون دانش مناسبی نسبت به کار های اولیه در PowerShell پیدا کرده اید. به راحتی می توانید با cmdlet ها کار کنید. با استفاده از دستور Get-Help می توانید توضیحات مربوط به هرکدام از دستورات زیر را پیدا کنید:

cmdlet

توضیح

New-ADGroup

ساخت گروه جدید

Remove-ADGroup

حذف گروه

Get-ADGroup

دریافت یک گروه

Set-ADGroup

تنظیم Attribute های گروه

Add-ADGroupMember

افزودن عضو به گروه

Remove-ADGroupMember

حذف عضو از گروه

Get-ADGroupMember

دریافت اعضای گروه

 

در اینجا قصد داریم یک گروه جدید ایجاد کنیم:

New-ADGroup –Name Support –GroupScope Global –GroupCategory Security

nps4

شیئ کامپیوتر در PowerShell

cmdlet های مربوط به شیئ کامپیوتر را می توانید در جدول زیر مشاهده کنید:

cmdlet

توضیح

New-ADComputer

ساخت شیئ کامپیوتر

Remove-ADComputer

حذف شیئ کامپیوتر

Get-ADComputer

دریافت شیئ کامپیوتر

Set-ADComputer

تنظیم Attribbute های شیئ کامپیوتر

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *