أرشيف

Posts Tagged ‘Windows 7’

Change Win7 Logon Screen Background

سبتمبر 10, 2010 أضف تعليق

بعد فترة إنقطاع طويلة عن الكتابة، قررت الرجوع بجاحة جديدة. وكما تعودنا ان الجديد في PowerShell يكون في شكل feature أو Cmdlet.

الجديد المرة دي هو Change-WindowsLogonBackground وهو عبارة عن cmdlet وظيفته تغيير الـ Logon Screen الأصليه لـ Windows7.

windows-7-logon

ملف  Change-WindowsLogonBackground.zip مكون من ملفين PS1:

  • الملف الأول: Change-WindowsLogonBackground وهو بيحتوي على كل الـ functions المسئولة عن تغيير الـ Logon Screen وإعادتها للوضع الإفتراضي. يمكن إستخدام الأمر التالي لتغير الـLogon Screen:
  • Change-WidnowsLogonBackground -Defaultbackground ImageFilePath
  • الملف الثاني: Change-WindowsLogonBackgroundGUI وهو عبارة عن WinForm تم إنشائها بإستخدام PowerShell بتقوم بنفس وظيفة الملف الأول.

GUI 

ملحوظة:

  • يجب ان لا يزيد حجم الصورة عن 256KB.
  • يجب ان يكون إمتداد ملف الصورة jpg.

Enable Remoting on Windows 7

نوفمبر 28, 2009 أضف تعليق

PowerShell Remoting خاصية من أهم الخواص اللي تميز بيها PowerShell عن غيره من الـ Shells التقليدية. زي ما قولت قبل كده ان خاصية الـ Remoting بتوفر إمكانية تشغيل وتنفيذ أوامر PowerShell او ما يعرف بـ cmdlets على أي جهاز كمبيوتر داخل الـ network بشرط ان يكون PowerShell موجود (Installed) على الكمبيوتر ده.

على الرغم من أن PowerShell Remoting خاصية أكتر من ممتازة، لا يمكن إستخدامها في أي Workgroup environment أو peer-to-peer (P2P) network. يمكن إستخدامها فقط في Domain-Environment أو AD-Environment لأسباب أمنية (Security).

دلوقتي في Windows 7 بقي ممكن إستخدام خاصية الـ Remoting في أي workgroup أو Peer-to-Peer.

ملحوظة: قبل ما أبدء في الشرح يفترض ان يكون عندك 2 كمبيوتر (A,B) عليهم Windows 7  و Windows PowerShell v2 و التأكد من الـ 2 كمبيوتر في نفس الـ IP Add. range، على سبيل المثال الـ IP Address لكمبيوتر A هيكون 192.168.1.10 والـ IP Address لكمبيوتر B هيكون 192.168.1.20.

دلوقتي هنحاول أن احنا نفتح Remote Session من كمبيوتر A إلي كمبيوتر B عن طريق إستخدام أمر Enter-PSSession:

Enter-PSSession 192.168.1.20

هنلاقي أن PowerShell Console طلع Error بيقول ان في مشكلة في الـ WinRM. الموضوع ببساطة ان الـ Remoting بيعتمد على حاجة اسمها Windows Remote Management المسئولة عن إستقبال اي Remote Connection، سبب الـ Error هو ان الـ WinRM Service مقفولة على الـ Windows عشان هي Secure by default لأسباب أمنية.

الخطوة الأولي: تشغيل WinRM على كمبيوتر A و B

لتشغيل WinRM هنستخدم أمر  Set-WSManQuickConfig ، قبل متستخدم الأمر تأكد من:

  •  ان ليك Administrative Privileges.
  •  أنك عايز تشغل WinRM وقادر علي تأمين جهازك وشبكتك وده عشان الأمر ده بيعمل الآتي:
  •  بيتأكد أن WinRM شغالة ولا مش شغالة بيشغلها.
  •  بيغير الـ Start mode للـ WinRM Service ويبقي Automatic.
  •  بيقوم بإنشاء Listner لإستقبال أي request من أي IP Address. دائما اي request بيتم عن طريق HTTP Protocol.
  •  بيعمل Firewall Exception rule للـ WinRM Service عشان يتأكد ان الـFirewall مش هيقفل اي traffic يخص الـ WS-Management.

بمجرد كتابة الأمر Set-WSManQuickConfig و الضغط على Enter لتنفيذه، هتظهرلك رسالة توضح الـ 4 نقاط اللي اتكلمنا عليها

Set-WSManQuickConfig

بعد التأكد من تنفيذ الأمر على كمبيوتر A و كمبيوتر B. هنحاول مرة تانية ان نفتح Remote Session من A إلي B عن طريق أمر Enter-PSSession. لكن هيظهر Error تاني بس السبب مختلف المرة دي. أول مرة كان سبب الـError هو ان الـWinRM Service مش شغالة. المرة سبب الـError هو ان الWinRM بترفض (Reject) أي request غير مُأمن بالـ Kerberos او على الأقل يكون بيستخدم نفس الـ Security mechanism أو ان الكمبيوتر اللي بيرسل الـrequest مش موجود في الـtrusted list في الكمبيوتر اللي بيستقبل، و بما أننا  بنستخدم Windows 7 على كمبيوتر A و B يبقي بنستخدم نفس الـ Security mechanism ،يبقي لنا ان الكمبيوتر مش موجود في الـ trusted list. والهدف منها هو التأكد من أن الكمبيوتر المحددة فقط هي المسموح لها بإستخدام خاصية الـ Remoting وليس أي كمبيوتر أخر.

قبل إضافة كمبيوتر B إلي الـ trusted list في كمبيوتر A.

هنستخدم أمر Test-WSMan عشان نتأكد ان على الأقل كمبيوتر A وكمبيوتر B قادرين على فتح Remote Sessions بينهم بغض النظر عن قبول او رفض الـ requests.

Test-WSMan 192.168.1.20

 

الخطوة الثانية: إضافة كمبيوتر A و B إلي الـ TrustedHosts list

الخطوة رقم 2 هي ان احنا هنعرف الـ WinRM على كل كمبيوتر على الكمبيوتر التاني عشان يسمح بإستقبال أي request لفتح اي remote session عن طريق إضافة الكمبيوتر في الـ trustedhosts list. على سبيل المثال عشان نسمح لكمبيوتر B ان يبعت request إلي كمبيوتر A يبقي لازم نُضيف الـ IP Address لكمبيوتر B في الـtrustedhosts list لكمبيوتر A. ويمكن كتابة “ * ” بدلاً من الـIP Address وفي هذه الحالة سيقوم الـWinRM بإستقبال اي Request من اي كمبيوتر وده بيكون عن طريق الأمر ده:

Set-Item WSMan:\localhost\client\trustedhosts * –force

الخطوة الثالثة: جرب و إستمتع…!!! :):)

بعد تنفيذ الخطوة رقم 2 أصبحت خاصية  الـ remoting جاهزة للإستخدام.

Enter-PSSession 192.168.1.20

بعد لحظات من الضغط على Enter لتنفيذ الأمر (الفترة اللي بيفتح فيها الـremote session) هيظهر الـ PS prompt لكمبيوتر B. دلوقتي تقدر تنفذ اي cmdlet على كمبيوتر B من خلال كمبيوتر A عن طريق PowerShell Remoting.

يمكن إستخدام أمر Exit-PSSession عشان تقفل الـRemote Session.

PowerShell in Windows 7

مارس 7, 2009 أضف تعليق

ميكروسوفت أصدرت النسخة التجريبية (Beta) من Windows 7،و من أهم مميزات Windows 7 هو أن PowerShell v2 يتم تحميله تلقائياً بمجرد تحميل Windows 7. كده يبقي Windows PowerShell موجود على الجيل الجديد من Windows Platform اللي يشمل Windows 7 – Windows Server 2008 مع العلم أن PowerSehll لم يكن متاح في Windows Server 2008 ServerCore ولكن تم إضافته مؤخراً في Windows Server 2008 R2. وطبعا كده مشكلة ان PowerSehll موجود على Windows Server ومش موجود على Windows Client إتحلت وهيبقي الـPowerShell موجود زي الـcmd.exe على أي Windows Operating System، وطبعاً ده هيبقي فرصة لكل الناس انها تعرف وتستخدم Windows PowerShell.

التصنيفات :Windows PowerShell الوسوم:,