cmdletها روی اشیاء در یک فضای نامی (Namespace) عمل می کنند. به عنوان مثال یک folder روی disk یک namespace است. این فضاهای نامی توسط Provider (فراهم آورنده) ساخته می شوند. به عنوان مثال File System دارای یک Provider است که به این ترتیب می تواند به صورت مستقیم با آن در ارتباط باشد و روی آن عملیات انجام دهد. این مسئله برای Registry هم صادق است.
قسمت اول: مدیریت با Powershell
قسمت دوم: مدیریت با Powershell
در 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:
همانطور که مشاهده می کنید خط Prompt به AD تغییر می کند و AD اشاره به Root Directory Service Entry یا همان RootDSE دارد. اکنون با دستور Dir می توانید لیست محتویات را مشاهده کنید و با دستور cd می توانید به شاخته های مختلف بروید. در اینجا می خواهیم در OU=Sales یک OU جدید برای مسئولین قرارداد ایجاد کنیم:
cd AD:
cd “dc=geekboy,dc=ir”
cd “ou=Sales”
New-Item -Name “ou=Contractors” –ItemType organizationalUnit
همچنین می توان با استفاده از پارامتر path بدون انتقال به شاخته مورد نظر مستقیما در مسیر مطلوب آیتم را ایجاد کرد. با استفاده از Alias ها دستور بسیار کوتاه تر از این می تواند باشد.
New-Item -Name “ou=Contractors” –ItemType organizationalUnit –path “ou=sales, dc=geekboy,dc=ir”
شیئ کاربر در 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 اکانت به صورت فعال ساخته می شود.
با استفاده از ساخت یک قالب (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 Ali -EmailAddress “[email protected]”
امکان Pipe کردن اکانت کاربری نیز وجود دارد:
Get-ADUser -Identity Ali| Set-ADUser -EmailAddress “[email protected]”
با استفاده از یک متغیر کمکی نیز می توانید یک یا دسته ای از attribute ها را Set کنید:
$user = Get-ADUser -Identity Ali
$user.mail = “[email protected]”
Set-ADUser -Instance $user
در خط دوم دستور فوق، از LDAP Name مربوط به یک Attribute به نام Mail استفاده شده است که الزاما نام هر Attribute با LDAP Name آن یکسان نمی باشد. با استفاده از Attribute Editor می توانید LDAP Name های مختلف را به آسانی بیابید.
با استفاده از دستور Remove-ADUser می توانید یک شیئ کاربر را حذف کنید.
مدیریت کلمه های عبور
در PowerShell امکان مدیریت Password ها نیز وجود دارد. این امر با استفاده از دستور Set-ADAccountPassword صورت می گیرد.
Set-ADAccountPassword -Identity “saeed.kh” -Reset
Set-ADAccountPassword -Identity “ali” -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 Geekboy
اگر attribute هایی در فایل CSV تعیین نشده است، می توانید به راحتی آن ها در خود pipe معین کنید. همانند مثال فوق.
شیئ گروه در PowerShell
اکنون دانش مناسبی نسبت به کار های اولیه در PowerShell پیدا کرده اید. به راحتی می توانید با cmdlet ها کار کنید. با استفاده از دستور Get-Help می توانید توضیحات مربوط به هرکدام از دستورات زیر را پیدا کنید:
توضیح | cmdlet |
ساخت گروه جدید | New-ADGroup |
حذف گروه | Remove-ADGroup |
دریافت یک گروه | Get-ADGroup |
تنظیم Attribute های گروه | Set-ADGroup |
افزودن عضو به گروه | Add-ADGroupMember |
حذف عضو از گروه | Remove-ADGroupMember |
دریافت اعضای گروه | Get-ADGroupMember |
در اینجا قصد داریم یک گروه جدید ایجاد کنیم:
New-ADGroup –Name Support –GroupScope Global –GroupCategory Security
شیئ کامپیوتر در PowerShell
cmdlet های مربوط به شیئ کامپیوتر را می توانید در جدول زیر مشاهده کنید:
توضیح | cmdlet |
ساخت شیئ کامپیوتر | New-ADComputer |
حذف شیئ کامپیوتر | Remove-ADComputer |
دریافت شیئ کامپیوتر | Get-ADComputer |
تنظیم Attribbute های شیئ کامپیوتر | Set-ADComputer |