قسمت نهم : PSProvider و PSDrive چیست؟

1 60

قسمت ششم : PSProvider و PSDrive چیست؟

سلام خدمت همه TheWay های عزیز، موضوع این مقاله این است که PSPRovider, PSDrive چیست و در چه جاهایی کاربرد دارند. شاید بسیار موضوع ساده ای باشد ولی در بعضی از مواقع می تواند بسیار سرعت ما را در انجام کار های تکراری بالا برده و در نتیجه کیفیت کار ما را بالاتر ببرد.

 

کاربرد PSProvider چیست؟

وقتی شما PSSnapin و یا Module به پاورشل خود اضافه می کنید، همراه با آن ها که گروهی از cmdlet ها است می تواند چیز دیگری به اسم PSProvider نیز اضافه شود. در نگاه اول شاید استفاده از PSProvider یا Provider، کار درستی نباشد و درواقع از دید خیلی از ادمین ها Provider کاربرد مناسبی ندارد. ولی شما فکر کنید در سازمان خود می خواهید یک قسمتی به Active Directory خود اضافه کنید که در دستورات آماده و ماژول AD نیست.

برای مثال شما می خواهید اتاق کنفرانس را در اکتیودایرکتوری خود معرفی کنید، تا اطلاعاتی درمورد آن داشته باشید. مطمئنا مایکروسافت یک دستور آماده برای انجام این کار قرار نداده است ولی شما با استفاده از Provider اکتیودایرکتوری شاید توانایی این کار را داشته باشید. البته یک همچین موضوعی شاید خیلی به ندرت استفاده شود ولی دلیل اینکه این مثال را زدم این بود که با کاربرد Provider بیشتر آشنا بشوید.

 

PSProvider چیست؟

درواقع PSProvider شامل یک سری تکنولوژی های خارج از پاورشل است، که توسط یک آداپتور به پاورشل وصل می شود. منظور از تکنولوژی همان مثالی است که در قسمت بالا درمورد آن توضیح داده شد، یعنی ما می توانیم کار هایی را که پاورشل در دستورات آماده خود ندارد را با PSProvider ها انجام دهیم. که این PSProvider ها شبیه به یک درایو در ویندوز هستند و ما می توانیم به آن ها دسترسی داشته باشیم. البته تفاوت هایی هم دارند که در ادامه مورد بررسی قرار میگیرند.

همانطور که در قسمت بالاتر گفته شد، وقتی ما Module و یا PSSnapin اضافه می کنیم امکان این که Provider نیز همراه با آن اضافه شود وجود دارد. برای همین ما می توانیم از دستور زیر برای اطلاع پیدا کردن از Provider های موجود کمک بگیریم :

Provider های بالا، بصورت دیفالت وقتی Session پاورشل را باز می کنیم اضافه می شوند.  توجه داشته باشید که Provider ها نیز زمانی که ما Session پاورشل را می بندیم از بین می روند و دوباره باید آن ها را مانند Module اضافه کنیم و یا در Profile پاورشل قرار دهیم. در قسمت چهارم راجع به Profile در پاورشل صحبت کردیم.

ShouldProcess : یعنی این Provider پارامتر های Whatif و Confirm را دارد

Filter : از پارامتر Filter استفاده می کند.

Credential : پارامتر Credential  را می توانیم در آن استفاده کنیم.

Transaction : از پارامتر Transaction استفاده می کند. این پارامتر زمانی کاربرد دارد که ما در حال تست باشیم و از تغییراتی که انجام می دهیم مطمئن نیستیم. می توانیم Start-Transaction را اجرا کنیم سپس دستورات مورد نظر را بنویسیم و اگر یک جایی متوجه اشتباه شدیم از دستور Undo-Transaction استفاده می کنیم تا تغییراتی که اعمال کردیم به حالت عادی خود برگردند و اگر دستورات را بدون اشتباه وارد کردیم از دستور Complete-Transaction استفاده می کنیم.

 

شما می توانید با دستور Help نیز، درمورد برخی از Provider ها اطلاعات خیلی خوبی بدست آورید. به مثال زیر توجه کنید :

گرفتن Help درمورد FileSystem که یکی از Provider های دیفالت است.

 

اما نکته ای که وجود دارد این است که، Provider ها به تنهایی قابل استفاده نیستند. یعنی ما برای اینکه با آن ها کار کنیم نیاز به یک ابزار دیگر به اسم PSDrive داریم.

نکته مهم :

دوستان حتما توجه داشته باشید که هر کدام از Provider ها در چه لایه ای تغییرات ایجاد می کنند. برای مثال اگر شما با استفاده از پرووایدر Register تغییراتی بر روی Registry کامپیوتر اعمال کنید آن تغییرات دائمی خواهند بود ولی اگر شما با استفاده از پرووایدر Environment تغییراتی بر روی آبجکت های Environment انجام دهید، آن تغییرات فقط مخصوص Session حال حاضر پاورشل شما هستند.

 

PSDrive چیست؟

همانطور که گفته شد PSProvider شامل یک سری تکنولوژی های خارج از پاورشل است، که توسط یک آداپتور به پاورشل وصل می شود، اما PSDrive درواقع همان آداپتوری است که ما با استفاده از آن می توانیم به Provider مورد وصل شویم و از آن استفاده کنیم.

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

با دستور زیر می توانید PSDrive های خود را مشاهده کنید :

درایو های بالا بصورت دیفالت هنگامی که ما پاورشل را باز می کنیم ساخته میشوند.

ساختن PSDrive و کار با آن ها :

ما با استفاده از دستور زیر می توانیم درایو های مورد نظر خود را بسازیم که این درایو ها برای جلوگیری از اتلاف وقت هم در خیلی از موارد موثر هستند :

PSProvider : در این پارامتر ما باید Provider خود را مشخص کنیم.

Root : در این پارامتر نیز باید مسیر مورد نظر که می خواهیم به آن وصل شویم را بنویسیم.

 

نکته : وقتی Session پاورشل را می بندید این PSDrive های اضافه شده از بین می روند پس برای اینکه همیشه در دسترس باشند باید به پروفایل پاورشل خود اضافه کنید.

 

استفاده پارامتر Persist :

برای اتصال به یک فایل Share استفاده می شود که ما می خواهیم بصورت همیشگی و دائم در سیستم ما وجود داشته باشد.وقتی از این پارامتر استفاده می کنیم باید نام تک قسمتی و یا همان نام تک حرفی بکار ببریم. همچنین به Windows Explorer هم اضافه می شود. به مثال زیر دقت کنید :

همانطور که مشاهده می کنید به Windows Explorer هم اضافه شده :

ساخت درایو Registery :

برای مثال ما با این مسیر زیاد کار خواهیم داشت و به همین دلیل یک درایو مخصوص آن درست می کنیم.

 

ساخت PSDrive برای Active Directory :

نکته مهم :

توجه داشته باشید که ما بیشتر از همه Provider ها از FileSystem استفاده می کنیم چون کارایی بیشتر برای ما دارد. در ادامه با کامند هایی که در FileSystem Provider استفاده می شوند آشنا می شویم.

 

کار با PSDrive Items و ItemProperty

لیست زیر مربوط به کامند هایی هست که ما می توانیم از آن در PSDrive ها استفاده کنیم برای ایجاد تغییراتی مثل ساختن، عوض کردن نام، پاک کردن و یا تغییر Property ها که بسیار مورد استفاده قرار می گیرد. همچنین Alias آن ها را در داخل پرانتز مشاهده می کنید :

■ Clear-Item (cli)

■ Copy-Item (copy, cpi, or cp)

■ Get-ChildItem (dir, ls, or gci)

■ Get-Item (gi)

■ Invoke-Item (ii)

■ Move-Item (move, mv, or mi)

■ New-Item (ni)

■ Remove-Item (erase, del, rd, ri, or rm)

■ Rename-Item (rni or ren)

■ Set-Item (si)

■ Clear-ItemProperty (clp)

■ Copy-ItemProperty (cpp)

■ Get-ItemProperty (gp)

■ Move-ItemProperty (mp)

■ New-ItemProperty

■ Rename-ItemProperty (rnp)

■ Set-ItemProperty (sp)

اگر به دستورات بالا دقت کنید در کل دو نوع دستور برای ایجاد تغییرات در PSDrive وجود دارد : ۱-Item , 2-ItemProperty

همانطور که در قسمت بالاتر توضیح دادم، برای اینکه ما بیشتر از FileSystem Provider استفاده می کنیم، من هم در این بخش مثال ها و کاربرد این دستورات را در FileSystem Provider بیان کرده ام.

در قسمت زیر ساخت فایل، تغییر نام، ساخت فولدر و انتقال فایل به فولدر را مشاهده می کنید :

Md هم درواقع Alias همان mkdir است به عکس زیر دقت کنید :

به جای md و یا mkdir میتوانیم از دستور زیر نیز استفاده کنیم :

استفاده از ItemProperty :

همانطور که در عکس بالا مشاهده می کنید، با ItemProperty می توانید مشخصات فایل مورد نظر را ببینید و با دستور Set-ItemProperty نیز آن ها را تغییر دهید.

 

دوستان امیدوارم از این مقاله لذت برده باشید و همچنین برای شما کارآمد و مورد استفاده باشد و ممنون از اینکه وقت گذاشتین و مقاله من رو مطالعه کردین.

منتظر مقالات بعدی باشید :)) …

 

منابع :

– کتاب Learn Windows PowerShell in a Month

– کتاب PowerShell in depth

1 نظر
  1. فرهاد می گوید

    با سلامشماره قسمت رو اصلاح بفرمایید

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.