برای تغییر، افزودن یا حذف مجوزهای امنیتی روی فایل ها یا پوشه ها با استفاده از PowerShell می توانید از دستور Set-Acl استفاده کنید . بهترین راه برای تنظیم مجوز این است که در صورت نیاز به همان مجوزها در مسیر مقصد، مجوزها را از یک پرونده یا پوشه دیگر کپی کنید.
به عنوان مثال، من همان مجوزهای پوشه منبع C:Shared را به مسیر پوشه مقصد c:shared1 می خواهم . شما می توانید از هر مسیر مقصدی استفاده کنید، می تواند مسیر UNC مشترک از راه دور باشد.
تفاوت در مجوزهای امنیتی بالا را ببینید، پوشه Shared named دارای یک مجوز اضافی اختصاص داده شده است (LABDOMAINDelta). ما مجوز را از یک پوشه به پوشه دیگر با استفاده از Get-ACL منبع و Set-ACL را در مسیر مقصد با استفاده از خط لوله کپی می کنیم.
Get-ACL C:Shared | Set-Acl C:Shared1
پس از انجام عملیات فوق، می توانید مجوز را در مسیر مقصد بررسی کنید.
می توانید مشاهده کنید که مجوز کاربر دلتا اضافه شده و سایر مجوزها نیز کپی شده اند. اگر کاربر از قبل در محل مبدا و مقصد وجود داشته باشد، مجوزهای کاربر مقصد با مجوز کاربر مبدأ بازنویسی می شود.
همچنین می توانید خروجی Get-ACL شی مبدا را در متغیر ذخیره کنید و آن را به Set-ACL شی مقصد اختصاص دهید. Set-ACL از پارامتر -AclObject برای دریافت ورودی مجوزها استفاده می کند.
مثال
PS C:> Get-ChildItem C:Temp -Recurse | Set-Acl -AclObject $perm -WhatIf اگر: انجام عملیات "Set-Acl" روی هدف "Microsoft.PowerShell.CoreFileSystem::C:TempScripts". اگر: انجام عملیات "Set-Acl" روی هدف "Microsoft.PowerShell.CoreFileSystem::C:Tempvcredist_x64.exe". اگر: انجام عملیات "Set-Acl" روی هدف "Microsoft.PowerShell.CoreFileSystem::C:TempW2K12-KB3191565-x64.msu". اگر: انجام عملیات "Set-Acl" روی هدف "Microsoft.PowerShell.CoreFileSystem::C:TempWindowsSensor.exe". اگر: انجام عملیات "Set-Acl" روی هدف "Microsoft.PowerShell.CoreFileSystem::C:TempWindowsSensor_7E3A9735FA064249A7005E9BE8CDD" اگر: انجام عملیات "Set-Acl" روی هدف "Microsoft.PowerShell.CoreFileSystem::C:TempScriptsMyModules". اگر: انجام عملیات "Set-Acl" روی هدف "Microsoft.PowerShell.CoreFileSystem::C:TempScriptsMyModulesMyModules.psm1" انجام شود.