أرشيف

Posts Tagged ‘Security’

Manage Execution Policies via Group Policy Object (GPO)

فبراير 23, 2010 أضف تعليق

إتكلمت في أخر موضوع عن أزاي نقدر نتحكم في تنفيذ و تشغيل اي PowerShell Script عن طريق إستخدام الـ Execution Policy وعرفنا ازاي نغير الـ Execution Policy بإستخدام Set-ExecutionPolicy cmdlet لكن إستخدام Set-ExectionPolicy ده مقتصر على كمبيوتر واحد، في بعض الأحيان ممكن نحتاج إلي تغير الـ Execution Policy على أكتر من كمبيوتر في نفس الوقت لتنفيذ Script. في هذه الحالة من الممكن إستخدام Set-ExecutionPolicy على كل كمبيوتر على حدا ولكن لن يكون إستخدامه عملياً، البديل في هذه الحالة سيكون إستخدام الـ Group Policy لتغيير الـ Execution Policy على كل الأجهزة داخل الـ environment scopr على سبيل المثال domain environment.

لا يوجد Group Policy مختصه بالـ Windows PowerShell ولذلك يجب تحميل الـ Group Policy ADM Template for Windows PowerShell

سيتم تحميل ملف admFiles_PowerShell.msi، بعد تنصيب الملف ستجد ملف الـ template موجود في

C:\program files\Microsoft Group Policy\PowerShellExecutionPolicy.adm

أتبع الخطوات لإضافة الـ template 

بعد أضافه الـ template للـ Group Policy سيظهر 2 node داخل الـ Group Policy console. الأولي للـ Computer Config والثانية للـ User Config

Computer Configuration\Administrative Templates\Windows Components\Windows PowerShell User

Configuration\Administrative Templates\Windows Components\Windows PowerShell

 

Windows PowerShell Nodes under Group Policy

عند اختيار Windows PowerShell node سيظهر: Turn On Script Execution

أستخدم Turn On Script Execution لإختيار الـ Execution Policy المراد تنفيذها

Turn On Script Execution

بعد اختيار الـ Execution Policy المراد تنفيذها والانتهاء من تعديل الـ Group Policy.

أستخدم الأمر gpupdate /force لتنفيذ وتطبيق التعديلات الجديدة في الـ group policy بدلا من الانتظار حتي يتم تطبيقها خلال الـ next update للـ group policy. الوقت الأفتراضي بين كل Update بيكون 90 دقيقة. 

PowerShell Security: Control script execution by using Execution Policy

فبراير 23, 2010 تعليق واحد

واحدة من أهم مميزات PowerShell التي تخص الـ Security هي ان الوضع الإفتراضي “default settings” لتنفيذ او تشغيل اي Script هو restricted وده معناه ان لا يمكن تشغيل او تنفيذ اي Script إلا الـ single commands  حتي يتم تغيير قاعدة التنفيذ “Execution Policy” الخاصة بـPowerShell. بمعني أخر لا يمكن استخدام PowerShell كـ Script Language ويمكن إستخدامه فقط كـ Interactive Shell.

السبب الرئيسي في ان الوضع الإفتراضي “default settings” لتنفيذ او تشغيل اي Script هو restricted هو ان PowerShell تم تصميمه ليكون Secure by default. و Secure by default معناها ان الـ default settings لـ PowerShell يجب ان تحقق اقصي مستوي من الآمان.

Execution Policy:

وظيفة الـ Execution Policy هي ان تتحكم في طريقة تنفيذ و تشغيل PowerShell Scripts. في 4 أوضاع “modes” من الـ Execution Policy:

  • Restricted: لا يمكن تشغيل او تنفيذ اي PowerShell Script حتي اذا كان digital signed 
  • RemoteSigned: يمكن فقط تشغيل الـ Local Scripts سواء كانت digital signed او لا ولكن الـ Remote Scripts زي Script موجود على الانترنت يجب ان يكون له digital signature  من trusted publisher حتي يتم تشغيله (الأكثر إستخداماً)
  • AllSigned: يجب ان يكون الـ Script له digital signature سواء كان Local أو Remote
  • UnRestricted: يمكن تشغيل اي PowerShell Script سواء كان digital signed او لا

 لمعرفة اي وضع من الـ 4 أوضاع هو الوضع الإفتراضي لـ PowerShell إستخدم: ExecutionPolicy

ExecutionPolicy

ExecutionPolicy

لتغيير الـ ExecutionPolicy إستخدم:

Set-ExecutionPolicy -ExecutionPolicy PolicyMode

 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

RemoteSigned