امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

آموزش مدیریت Share های شبکه با پاورشل : دستورات Shared Folder

شما میتوانید Shared Folder ها و Shared File ها را با استفاده از PowerShell مدیریت کنید. قبل از PowerShell نسخه 3.0 انجام این کار چندان بصری و قابل درک نبود اما با ارائه PowerShell نسخه 3.0 در ویندوز سرور 2012 و ویندوز 8 و نسخه های بالاتر ماژول SmbShare برای مدیریت Shared Folder ها معرفی شد. این ماژول شامل چندین دستورات مختلف است که مدیریت Shared Folder ها را آسان تر و بی دردسر می کند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

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

Get-SmbShare

برای اینکه اطلاعات دقیقی از یک Shared Folder بدست بیاوریم دستور زیر را اجرا می کنیم :

Get-SmbShare -Name Share-1 | select *

ما در این دستور در مقابل پارامتر Name اسم Shared Folder را باید بنویسیم و با Pipe کردن این دستور با * select میتوانیم اطلاعات بسیار کاملی از پوشه Share شده را در خروجی مشاهده کنیم.حالا ما یک Shared Folder بوسیله PowerShell ایجاد می کنیم. برای مثال :

New-SmbShare -Name Public -Description "Public Data" -Path C:\Shares\Public 

در این دستور یک Shared Folder به اسم Public ایجاد کردیم و در مقابل پارامتر Description یک توضیحات برای آن در نظر گرفتیم و در آخر در مقابل پارامتر Path مسیر لوکالی که این Shared Folder در آن قرار دارد را مشخص کردیم . از طریق دستور Set-SmbShare میتوانیم مشخصات Shared Folder را تغییر دهیم. برای مثال ما در دستور زیر توضیحات Shared Folder ای قبلا ایجاد کردیم را تغییر میدهیم :

Set-SmbShare -Name Public -Description "Application Logs" -Force

با استفاده از دستور Get-SmbShareAccess میتوانیم Permission ها یا سطوح دسترسی تعریف شده روی Shared Folder را مشاهده کنیم. بصورت پیش فرض زمانیکه یک Shared Folder میسازید گروه Everyone دسترسی Read به آن Shared Folder دارد. حالا ما باید بتوانیم Permission های مد نظر خودمان را روی Shared Folder برای گروه ها و کاربران مورد نظرمان تعریف کنیم تا کاربران مورد نظر تنها بتوانند به آن دسترسی داشته باشند. برای انجام این کار ما از دستور Grant-SmbShareAccess استفاده می کنیم. ما یک گروه به نام tosinso-G1 ایجاد کرده ایم و به اعضای آن دسترسی Read برای Shared Folder میدهیم :

Grant-SmbShareAccess -Name Public -AccountName Tosinso\tosinso-G1 -AccessRight Read

اگر پارامتر Force را در انتهای این دستور تعریف نکنیم از ما تاییدیه برای انجام این کار خواهد خواست. حالا ما یک گروه دیگر به نام TosinsoAdmins به این Shared Folder اضافه می کنیم و دسترسی Full به آن میدهیم :

Grant-SmbShareAccess -Name Public -AccountName Tosinso\TosinsoAdmins -AccessRight Full -Force

در این دستور ما پارامتر Force را نیز اضافه کردیم تا از ما تاییدیه نگیرد . برای اینکه دسترسی یک گروه را از یک Shared Folder سلب کنیم با استفاده از دستور Revoke-SmbShareAccess این کار را انجام میدهیم. برای مثال ما میخواهیم دسترسی گروه Everyone را از پوشه Public بگیریم :

Revoke-SmbShareAccess -Name Public -AccountName Everyone -Force

با اجرای این دستور گروه Everyone کلاََ به پوشه Public دسترسی نخواهد داشت. اگر به قسمت Share Permissions پوشه Public نگاه کنید میبینید که گروه Everyone حذف شده است.حالا اگر بخواهید دسترسی یک گروه یا چند کاربر را به یک Shared Folder ببندید یا Deny کنید با استفاده از دستور Block-SmbShareAccess باید این کار را انجام دهید. توجه کنید که دسترسی Deny بر Allow اولویت خواهد داشت و Override خواهد شد زیرا Deny دسترسی را محدودتر می کند و باید اولویت بالایی داشته باشد. برای مثال ما میخواهیم دسترسی گروه tosinso\G1 را از پوشه Public سلب یا Deny کنیم :

Block-SmbShareAccess -Name Public -AccountName Tosinso\tosinso-G1 -Force

بعد از اجرای این دستور در خروجی در ستون AccessControlType کلمه Deny را باید مشاهده کنید. چنانچه بخواهید این دسترسی را Allow کنید کافیست در دستور فوق بجای Block بنویسید UnBlock.چنانچه به یک Shared Folder دیگر نیازی نداشتید برای حذف کردن آن میتوانید از دستور Remove-SmbShare استفاده کنید. مثال :

Remove-SmbShare -Name Public -Force

نویسنده : امیرحسین کریم پور

منبع : جزیره سرویس های شبکه مایکروسافت وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی میباشد


امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

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

نظرات