أرشيف

Posts Tagged ‘Windows PowerShell’

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.

PowerShell Tips & Tricks: Tip# 06 Update Twitter status via PowerShell

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

بالصدفة وانا بعمل سيرش على Twitter APIs لاقيت net twitter interface. اسمه Twitterizer. فكرت شوية ولاقيتها هتبقي فكرة كويسة لشرح و تطبيق إستخدام الـ net object. من خلال الـ PowerShell.

الفكرة ببساطه هي ان بإستخدام PowerShell هنكتب function هنتعامل مع الـ dll الخاص بالـ twitter interface ومنها هنخلٌق net object. من نوع twitter وبإستخدامه نقدر نستخدم الـ method المسئولة عن تحديث الـ Status.

Twitterizer.Framework-1.0.1.149.zip

Update-TwitterStatus

Update-TwitterStatus

تحميل الـكود:  Update-TwitterStatus

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

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

PowerShell Tips & Tricks: Tip# 05 Record your PS-Session using Transcripts

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

كلمة Transcript معناها في اللغة العربية “نص أو نسخة طبق الاًصل” وهو ده موضوع النهارده، هنعرف ازاي نسجل كل امر بيتكتب وبيتنفذ و نتيجة تنفيذه في PowerShell Session او داخل الـ PowerShell Console في text file يمكن الرجوع له في اي وقت. هنعرف أزاي نستخدم Start-Transcript و Stop-Transcript. واضح من أسم كل أمر هو وظيفته ايه.

  • Start-Transcript: بيبدأ عملية التسجيل و الكتابة في الـ text log file.
  •  Stop-Transcript: بيوقف عملية التسجيل والكتابة في الـ text log file.

خاصية الـ Transcript متوفرة بس في PowerShell Console وليست متوفرة في PowerShell ISE.

كيفية إستخدام Transcript لحفظ وتسجيل PS-Session:

1- نفذ الأمر Start-Transcript لبدء التسجيل.

2- اكتب الأوامر المراد تنفيذها

3- نفذ الأمر Stop-Transcript عند الإنتهاء لإيقاف التسجيل وإظهار مكان حفظ ملف التسجيل.

Transcript

Transcript

PowerShell Providers

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

الـ Providers  هي عبارة عن الـ Interface بين الـ User  و الـ Data. الـ Providers في PowerShell وظيفتها انها تسهل الوصول للمعلومات اللي من الصعب التعامل معاه بإستخدام Command-Line زي مثلاً الـ Windows Registry ، وده بيكون عن طريق تحويل الـ data stores إلي Mounted Drive يسهل التعامل معاه كأي Drive موجود على الكمبيوتر زي الـ :C او الـ : D، على سبيل المثال في PowerShell Provider اسمه Registry وده وظيفته تحويل الـ Windows Registry إلي PowerShell Drive اسمه Registry لتسهيل التعامل معاه الـ Registry من خلال الـ PowerShell. 

علشان تعرف كل الـ Providers المتاحة في PowerShell إستخدم: 

 Get-PSProvider 

Get-PSProvider

Get-PSProvider Built-in Providers

Built-in Providers

Built-in Providers

 زي ما قولت قبل كده الـ providers بتحول الـ data stores إلي mounted drives بس بتكون من نوع PowerShell او بنسميها PowerShell Drives.   

علشان نعرف الـ PSDrives المتاحة في PowerShell إستخدم: Get-PSDrive 

Get-PSDrive

Get-PSDrive

لو شوفنا الـ Output لـ Get-PSProvider و Get-PSDrive هنلاقي ان الـ output تقريباً واحد بالاَضافه الي الـ Physical drives الخاصه بالكمبيوتر زي الـ hard disk والـ CD-Rom.  

للوصول او الدخول إلي اي PS Drive إستخدم: Set-Location DriveName  

مثال: هنستخدم Set-Location علشان ندخل إلي Alias Drive و نعرض كل الـ Aliases 

Set-Location

Set-Location

 للمعلومات أكتر عن PowerShell Providers: 

http://technet.microsoft.com/en-us/library/dd347723.aspx 

http://msdn.microsoft.com/en-us/library/ee126196(VS.85).aspx 

 

 

PowerShell Tips & Tricks: Tip# 04 Change output colors using Write-Host

فبراير 21, 2010 2تعليقان

في بعض الأوقات بنحتاج ان نغير الوان الـ output لأي command علشان نسهل قراءة الـ Output، على سبيل المثال لو عندنا Script  بيبحث عن حالة الـServices على الكمبيوتر وبيعرض أسم كل Service و الـ Status. الـ Status ممكن تكون Running أو Stopped مع العلم ان عدد الـ Services يعتبر مش قليل في الحالة هحتاج اغير لون الـStatus لتسهيل متابعة حالة كل Service. هنستخدم اللون اللون الأخضر في حالة Running واللون الأحمر في حالة Stopped.

لتغير لون الـoutput هنستخدم الأمر: Write-Host

وهنستخدم معاه Parameters:

  • ForegroundColor-
  • BackgroundColor-

مثال:     Write-Host “PowerShell Rocks ; )” -ForegroundColor “White”  -BackgroundColor “Blue

مثال: تغير لون الـ Serivce طبقاً لحالتها، أخضر في حالة Running و أحمر في حالة Stopped

Script File

PowerShell Tips & Tricks: Tip# 03 Get WinRM HTTP/S Ports

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

في أخر إصدار لـWindows PowerShell ميكروسوفت غيرت الـ http/https ports اللي بتستخدمها الـ WinRM علشان الـ PowerShell Remoring من port 80 إلي port 5985 بالنسبة إلي protocol http. ومن port 443 إلي port 5986 بالنسبة إلي protocol https وده كان لتفادي اي conflict او collision بين الـ Services اللي بتستخدم نفس الـ ports.

علشان تعرف الـ ports الجديدة للـ WinRM، إستخدم:

Get-ChildItem WSMan:\localhost\Service\DefaultPorts