الرئيسية
» WINDOWS
»
كيفية إصلاح مشكلة "تشغيل البرامج النصية معطل على هذا النظام" في PowerShell على نظام التشغيل Windows 10
كيفية إصلاح مشكلة "تشغيل البرامج النصية معطل على هذا النظام" في PowerShell على نظام التشغيل Windows 10
لحل مشكلة "تشغيل البرامج النصية معطل على هذا النظام" على جهاز كمبيوتر شخصي يعمل بنظام Windows 10، اضبط PowerShell على RemoteSigned لحساب المستخدم الخاص بك ، ثم شغّل البرنامج النصي من مجلده. افتح Windows PowerShell وأدخل الأمر التالي:
أكّد التغيير عند ظهور المطالبة. ينطبق هذا فقط على حساب Windows الخاص بك ولا يتطلب نافذة مسؤول. إذا كنت ترغب في تشغيل برنامج نصي موثوق به مرة واحدة فقط، فاستخدم خيار الجلسة المؤقتة أدناه.
1. تحقق من سياسة التنفيذ التي تمنع تنفيذ البرنامج النصي
في نفس تطبيق PowerShell الذي ظهر فيه الخطأ، قم بتشغيل ما يلي:
Get-ExecutionPolicy -List
يعرض هذا الأمر سياسات نهج المجموعة، والجلسة الحالية، وحسابك، والكمبيوتر. Restrictedيسمح بتنفيذ أوامر فردية ولكنه يحظر ملفات البرامج النصية؛ وهو النهج الافتراضي لأجهزة كمبيوتر عملاء Windows عندما لا يتم تعيين أي نهج آخر. يستخدم PowerShell الإعداد الأكثر تحديدًا والمناسب، مع إعطاء الأولوية لإعدادات نهج المجموعة.
تحقق من النطاقات المدرجة قبل تغيير السياسة.
سياسة التنفيذ هي ميزة أمان تساعد على منع تشغيل البرامج النصية عن غير قصد، لكن مايكروسوفت تصفها بأنها دفاع متعدد الطبقات وليست حدودًا أمنية. قد يظل البرنامج النصي ضارًا، لذا راجع شفرته وتحقق من مصدره قبل السماح بتشغيله. راجع دليل سياسة تنفيذ Windows PowerShell 5.1 من مايكروسوفت .
2. السماح بتشغيل البرامج النصية المحلية لحسابك
بالنسبة للبرامج النصية التي تقوم بإنشائها أو التي تثق بها، اضبط سياسة مستوى المستخدم على ما يلي RemoteSigned:
عندما يسألك PowerShell عما إذا كنت ترغب في تغيير سياسة التنفيذ، اكتب الأمر Yواضغط على مفتاح الإدخال (Enter) إذا كنت تنوي المتابعة. يسري التغيير فورًا؛ ولن تحتاج إلى إعادة تشغيل PowerShell. CurrentUserيؤثر هذا التغيير على حسابك فقط، ويتجنب تغيير LocalMachineالنطاق الافتراضي الذي ينطبق على الجميع ويتطلب نافذة PowerShell بصلاحيات المسؤول.
قم بتأكيد تغيير RemoteSigned الخاص بالحساب فقط عند مطالبتك بذلك.
RemoteSignedيسمح هذا النظام بتشغيل البرامج النصية المحلية غير المصنفة كملفات تنزيل من الإنترنت. ويشترط أن تحتوي البرامج النصية التي تم تنزيلها على توقيع رقمي موثوق، إلا إذا قمتَ بإلغاء حظر ملف معين عمدًا. تجنب تغيير السياسة إلى Unrestrictedهذا Bypassالخيار كحل عام، فهذه الإعدادات تسمح بتشغيل المزيد من البرامج النصية مع عدد أقل من التحذيرات.
3. قم بتشغيل البرنامج النصي من مجلده
انتقل إلى المجلد الذي يحتوي على .ps1الملف، ثم أضف ./(أو ما يُشابه ذلك في نظام ويندوز .\) قبل اسمه. على سبيل المثال:
Set-Location 'C:\Scripts'
.\MyScript.ps1
لا يقوم PowerShell بتشغيل ملف تلقائيًا من المجلد الحالي عند كتابة اسمه فقط. إذا كان المسار يحتوي على مسافات أو كنت تقوم بتشغيله من مجلد آخر، فاستخدم عامل التشغيل call وضع المسار الكامل بين علامتي اقتباس.
& 'C:\Scripts\My Script.ps1'
تحقق من السياسة الفعالة، ثم قم باستدعاء البرنامج النصي من خلال مساره.
4. إذا كان البرنامج النصي الذي تم تنزيله لا يزال محظورًا
باستخدام هذه RemoteSignedالخاصية، قد يبقى ملف نصي غير موقّع تم تنزيله من الإنترنت محظورًا حتى بعد تغيير السياسة. أولًا، افحص الملف النصي وتأكد من موثوقية مصدره. إذا كان كذلك، فقم بإلغاء حظر هذا الملف فقط.
استخدم المسار الصحيح إذا كان الملف موجودًا في مكان آخر. Unblock-Fileيزيل هذا الأمر علامة التنزيل من الإنترنت الخاصة بالملف؛ ولا يفحص الكود أو يجعل البرنامج النصي غير الآمن آمنًا. توثق مايكروسوفت هذا السلوك في مرجع أمر Unblock-File في ويندوز باور شيل 5.1 .
لا تقم بإلغاء حظر سوى الملفات التي تمت مراجعتها والتي تثق بمصدرها.
استخدم سياسة مؤقتة لجلسة واحدة
إذا كنت لا ترغب في تطبيق إعدادات خاصة بكل مستخدم بشكل دائم، فأغلق نافذة PowerShell الحالية وافتح نافذة جديدة. ثم شغّل هذا الأمر قبل البرنامج النصي:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
ينطبق هذا Processالنطاق فقط على جلسة PowerShell الحالية وعملياتها الفرعية؛ ويؤدي إغلاق النافذة إلى مسحه. مع ذلك، يظل هذا الأمر خاضعًا RemoteSignedللقواعد، لذا قد يلزم مراجعة الملفات غير الموقعة التي تم تنزيلها وإلغاء حظرها بشكل فردي. يشرح مرجع Set-ExecutionPolicy النطاقات المتاحة وقيم السياسة.
إذا استمر الخطأ
قم بتشغيل الأمر Get-ExecutionPolicyللاطلاع على السياسة الفعّالة، Get-ExecutionPolicy -Listوللتحقق من عناصر التحكم فيها. إذا MachinePolicyتم UserPolicyتعيين سياسة المجموعة، فهذا يعني أن سياسة المجموعة الخاصة بالمؤسسة هي التي تتحكم في تنفيذ البرامج النصية. لا تحاول تجاوزها؛ تواصل مع مسؤول النظام.
تأكد من تغيير السياسة في نفس إصدار PowerShell الذي تستخدمه لتشغيل البرنامج النصي. يخزن Windows PowerShell 5.1 powershell.exeو PowerShell 7 pwsh.exeإعدادات السياسة بشكل منفصل.
إذا كنت ترغب في إزالة التغيير الخاص بكل مستخدم لاحقًا، فقم بتشغيل الأمر التالي Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser. سيؤدي هذا إلى مسح CurrentUserالإعداد فقط؛ وستعود السياسة الفعلية إلى نطاق آخر مُكوَّن، أو إلى النطاق الافتراضي إذا لم يكن هناك نطاق مُكوَّن على نظام التشغيل Windows 10 Restricted.
بالنسبة لمعظم أنظمة ويندوز 10 الشخصية، RemoteSignedيكفي CurrentUserتشغيل البرامج النصية المحلية مع الاحتفاظ بخاصية التحقق من البرامج النصية التي تم تنزيلها. حافظ على نطاق محدود، وتحقق من التعليمات البرمجية غير المألوفة، واترك إدارة الإعدادات المركزية لمسؤول تقنية المعلومات لديك.