Environment Variables and Paths in Powershell - متغيرات البيئة والمسارات في ويندوز

متغيرات البيئة والمسارات (Environment Variables and Paths) هي متغيرات تخزن المعلومات المهمة عن النظام الخاص بك، وتشمل معلومات مثل مسار ملفات ومجلدات النظام وتفاصيل المستخدم الحالي، وغير ذلك الكثير. يمكن استخدام PowerShell للوصول إلى قيمة متغيرات البيئة وتعديلها عند الحاجة.

لاسترداد جميع متغيرات البيئة المخزنة في نظام التشغيل ، يمكنك استخدام الأمر أدناه.

Get-ChildItem Env:\

PS C:\Users\lenovo> Get-ChildItem env:\ Name Value ---- ----- ALLUSERSPROFILE C:\ProgramData APPDATA C:\Users\lenovo\AppData\Roaming ChocolateyInstall C:\ProgramData\chocolatey ChocolateyLastPathUpdate 133193064563135754 CommonProgramFiles C:\Program Files\Common Files CommonProgramFiles(x86) C:\Program Files (x86)\Common Files CommonProgramW6432 C:\Program Files\Common Files COMPUTERNAME ******* ComSpec C:\Windows\system32\cmd.exe DriverData C:\Windows\System32\Drivers\DriverData HOMEDRIVE C: HOMEPATH \Users\lenovo LOCALAPPDATA C:\Users\lenovo\AppData\Local LOGONSERVER ****** NUMBER_OF_PROCESSORS 8 OneDrive C:\Users\lenovo\OneDrive OS Windows_NT Path C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\; PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC; PROCESSOR_ARCHITECTURE AMD64 PROCESSOR_IDENTIFIER Intel64 Family 6 Model 94 Stepping 3, GenuineIntel PROCESSOR_LEVEL 6 PROCESSOR_REVISION ********* ProgramData C:\ProgramData ProgramFiles C:\Program Files ProgramFiles(x86) C:\Program Files (x86) ProgramW6432 C:\Program Files PSModulePath C:\Users\lenovo\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules; PUBLIC C:\Users\Public SESSIONNAME Console SystemDrive C: SystemRoot C:\Windows TEMP C:\Users\lenovo\AppData\Local\Temp TMP C:\Users\lenovo\AppData\Local\Temp USERDOMAIN **** USERDOMAIN_ROAMINGPROFILE ***** USERNAME lenovo USERPROFILE C:\Users\lenovo windir C:\Windows


للوصول إلى قيمة متغير البيئة، يمكن استخدام الصيغة التالية: 

$env:<VariableName>

ولتعديل قيمة متغير البيئة، يمكن استخدام الصيغة التالية:

$env:<VariableName> = "<NewValue>"

مثلا، لتعديل متغير البيئة Path لتضم دليل جديد، يمكن استخدام الصيغة التالية:

$env:Path = "$env:Path;C:\NewDirectory"


هناك بعض المشاكل الشائعة التي يمكن حلها باستخدام متغيرات البيئة والمسارات في PowerShell:

  • تعديل مسار النظام لتضم دليل جديد: يمكن تعديل متغير البيئة Path لتضم دليل جديد يحتوي على أدوات أو برامج جديدة.
  • تعديل متغير البيئة لتغيير اللغة المفتوحة للنظام: يمكن تعديل متغير البيئة LANG لتغيير اللغة للنظام إلى اللغة الأخرى.
  • تعديل متغير البيئة لتغيير الإعدادت الإفتراضية للنظام: يمكن تعديل متغيرات البيئة الأخرى كمثل TEMP لتغيير الإعدادات الإفتراضية للنظام.
  • هناك الكثير من التطبيقات لمتغيرات البيئة والمسارات في PowerShell، ويمكن استخدامها لتحسين عمل النظام وتحسين أداء البرامج.




كيف يمكن تعديل متغير البيئة (Environment Variable) في PowerShell ؟


سنقوم بتعديل متغير TMP علي سبيل المثال:

1. استخدم الأمر للوصول إلى متغير البيئة بأسمه. 
$env:VariableName
$env:TMP
2. استخدم الأمر لتعديل قيمة متغير البيئة.
$env:VariableName = "New Value"
$env:TMP = "C:\Users\lenovo\AppData\Local\"
3. استخدم الأمر لتعديل قيمة متغير البيئة بشكل دائم.
[Environment]::SetEnvironmentVariable("VariableName", "New Value", "User")
[Environment]::SetEnvironmentVariable("TMP","C:\Users\lenovo\AppData\Local\","Elliot")
استخدم الأمر للحصول على قيمة متغير البيئة على مستوى الجهاز.
[Environment]::GetEnvironmentVariable("VariableName", "Machine")
[Environment]::GetEnvironmentVariable("TMP")

بالنسبة لهذا المثال تم تغير المسار من ملف tmp الي local فقط والتغير في اول خطوتين (1,2) يكون فقط تغير مؤقت في session الذي تعمل بها اما بالنسبة للخطوة الثالثة (3) فهو تغير دائم في نظامك وهذا مثال فقط حتي نفهم كيفية عمل هذا.

هناك الكثير من المشاكل الشائعة التي يمكن حلها باستخدام متغيرات البيئة والمسارات في PowerShell، ويمكن استخدام الأمور المذكورة أعلاه لتعديل أو تحديث قيمة كما نريد.




عند تحميل اي برنامج قابل للتنفيد او ملف و نحتاج الي تشغيلة من powershell بالطبع ليس كل البرامج الذي نقوم بتحميلها نستطيع تشغيلها تلقائيا من powershell ففي هذه الحالة نلجأ الي استخدام متغير PATH في هذه الحالة لنستطيع حل هذه المشكلة.

متغير PATH هو متغير عام في النظام الذي يحدد مسارات البحث عن البرامج والملفات التي يجب تشغيلها عند تشغيل أي تطبيق على الجهاز.عند إدخال اسم تطبيق على command line ل powershell او cmd ، النظام سيبحث عن ذلك التطبيق في المسارات المحددة في متغير PATH.وإذا عثر عليه سيتم تشغيل التطبيق وإذا لم يتم العثور على التطبيق في أي من المسارات، فسيتم عرض رسالة خطأ.

كيف يمكن إضافة مسار جديد إلى متغير البيئة PATH باستخدام PowerShell؟

  • استخدم الأمر للوصول إلى قيمة متغير البيئة PATH.
$env:Path
  • استخدم الأمر لإضافة مسار جديد إلى متغير البيئة PATH.
$env:Path = $env:Path + ";New Path"
  • استخدم الأمر لإضافة مسار جديد إلى متغير البيئة PATH بشكل دائم.
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";New Path", "Machine")

ملاحظة: تأكد من استخدام علامة ; كفاصل بين المسارات المختلفة عند إضافة مسار جديد إلى متغير البيئة PATH.

مثال بسيط:

  • إنشاء مجلد جديد للملفات الخاصة بك، على سبيل المثال: "D:\MyPrograms".
  • افتح PowerShell، وأدخل الأمر التالي:
$env:PATH = $env:PATH + ";D:\MyPrograms"
  • إغلاق وإعادة فتح PowerShell للتأكد من تطبيق التغييرات.
  • تأكد من إضافة الملفات الخاصة بك إلى المجلد "C:\MyPrograms".
  • يمكنك الآن تشغيل الملفات الخاصة بك من أي مكان على الجهاز دون الحاجة إلى تحديد المسار الكامل للملف.


كيف يمكن تشغيل البرامج عند استدعاءها من أي مجلد في PowerShell؟

تأكد من إضافة المجلد الذي تحتوي على البرنامج الذي تريد تشغيله إلى متغير البيئة PATH.
استخدم الأمر Start-Process ProgramName لتشغيل البرنامج.
استخدم الأمر Invoke-Expression ProgramName لتشغيل البرنامج كأمر في PowerShell.
ملاحظة: وأيضا يمكنك تشغيلة بالاسم الخاصه بية فقط -- قد يكون مطلوباً إضافة إمتداد الملف (مثل .exe أو .msi) عند استدعاء البرنامج عن طريق أحد الأوامر المذكورة أعلاه.


دا فيديو من قناة SecurityScope 

إرسال تعليق

أحدث أقدم

نموذج الاتصال