باستخدام أمر PowerShell cmdlet Read-Host، يمكنك طلب الإدخال تفاعليًا من مستخدم النص. دعنا نرى بعض التطبيقات العملية في العالم الحقيقي على كيفية استخدام أمر الـRead-Host
في PowerShell.
طلب الإدخال باستخدام Read-Host
يؤدي أمر Read-Host
وظيفتين في نص PowerShell؛ إنه يعلق التنفيذ ويستقبل الإدخال. هذا كل شيء. Read-Host
هو أمر بسيط ولكنه يأتي بفائدة عند الحاجة إلى الحصول على معلومات من مستخدم النص.
في أبسط حالاته، يتطلب أمر Read-Host
ببساطة استخدام المعلمة Prompt
. تسمح هذه المعلمة Prompt
لك بإعطاء مستخدم النص بعض الإشارات حول ما يجب إدخاله. على سبيل المثال، إذا كان النص الخاص بك يتطلب اسم خادم، قد تختار استخدام Read-Host
لطلب من المستخدم إدخال ذلك عند تشغيل النص.
يمكنك أن ترى أدناه أنه من خلال تنفيذ Read-Host
داخل نافذة الأوامر PowerShell نفسها باستخدام المعلمة Prompt
، فإن PowerShell يتوقف عن التنفيذ ويعرض رسالة الإعلام الخاصة بي التي توضح للمستخدم ما نبحث عنه.

دعونا ندمج هذا في نص. كلما قام مستخدم بإدخال معلومات في النافذة، يقوم Read-Host
بإرجاع تلك المعلومات إلى الشفرة الخاصة بك. يمكنك بسهولة التقاط هذه المعلومات عن طريق تعيين الإخراج إلى متغير. ربما أرغب في طلب اسم الخادم ثم القيام بشيء مع ذلك الاسم. وإلا، أود أن أرسل تحذيرًا للمستخدم يخبرهم بأنني بحاجة حقًا، بحقًا إلى ذلك الاسم.
باستخدام هيكل if/then بسيط، يمكنني أن أتأكد من أن المستخدم يدخل اسم خادم. بمجرد أن يفعلوا ذلك، يمكنني بعد ذلك التقاطه والقيام بشيء معه ، وإلا، أرسل رسالة تحذير.

طلب كلمات المرور
يجب أن تعرف أنه ليس من الفكرة الجيدة تخزين كلمات المرور على نص عادي في السكربتات الخاصة بك. وبالمثل، ليس من الفكرة الجيدة أيضًا أن تكون كلمات المرور مخزنة على شكل نص عادي في الذاكرة. للتغلب على ذلك، تحتوي PowerShell على مفهوم يُسمى “سلسلة آمنة” وهي سلسلة بسيطة مشفرة.
A secure string can any kind of sensitive information; a password is a great example. What does this have to do with Read-Host
? The Read-Host
cmdlet has an AsSecureString
parameter which allows the user to not only store the output as a secure string but also to show asterisk while typing to hide your secret from prying eyes!
لنفترض أن لدي سرًا عميقًا ومظلمًا لا أريد لأحد أن يعرف عنه ولكني بحاجة لتمرير كلمة المرور هذه إلى نوع من البرمجيات. يمكنك أن ترى أدناه أنه عندما لا أستخدم AsSecureString
، أنت على دراية بذلك! ومع ذلك، إذا استخدمت AsSecureString
، سري آمن لأن كل حرف أكتبه يتم استبداله بفاصلة ويتم حفظ الإخراج كسلسلة آمنة بدلاً من سلسلة نصية عادية.

للإطلاع على توثيق Read-Host
، تفضل بزيارة Microsoft Docs.