מתחילים ב-PowerShell


גם אם אתם מאוד ותיקים בתחום התשתיות וניהול רשתות, ומכירים כבר פקודות cmd על בוריין- עם פקודות Powershell תוכל להשיג הרבה יותר ובקלות. אנו נסקור כאן רשימת פקודות נפוצות ב-Powershell.

לפני שמתחילים, ראשית יש לפתוח את PowerShell כמנהל.

בדיקת הרצת PowerShell במחשב

על מנת לבדוק אם בכלל ניתן להריץ פקודות PS במחשב יש להקליד:

Get-ExecutionPolicy

לפקודה זו יש 4 תוצאות:

Restricted- סקריפטים של PS אינם מותרים.

AllSigned- תוכלו להריץ סקריפטים רק ממפתחים מאומתים. אותם תצטרכו לאשר בעת ההפעלה.

RemoteSigned- תוכלו להריץ סקריפטים שיצרתם בעצמכם החתומים ע"י מפתחים מאומתים.

Unrestricted- תוכל להריץ איזה סקריפט שתרצה.

במידה והתוצאה היא ה-2 הראשונות- על מנת לאפשר למערכת שלכם להריץ פקודות PS יש להשתמש בפקודה הבאה:

Set-ExecutionPolicy RemoteSigned

*יש ללחוץ על Y כדי לאשר ואנטר

מהם PowerShell Cmdlets

פקודות Cmdlets הן פקודות מפעילות (כמו פעולות הפעלה בשפת תכנות). הן אינן רגישות לאותיות גדולות וקטנות (כמו בסיסמאות למשל) ואין זה משנה אם תכתבו Get-ADUser או get-aduser.

אם ברצונכם להשתמש במספר פקודות בפעם אחת, תצטרכו להפריד ביניהם באמצעות הסימן ;

הנה מה הן מאפשרות:

  • הרצת פקודות system, פקודות user ו-cmdlets מותאמות אישית.
  • הוצאת פלט כאובייקט/ים
  • קבלת והעברת נתונים אל פקודות cmdlets נוספות באמצעות Pipes

לפני שנתחיל לצלול חשוב להבין את חלקי הפועל בפקודה:

  • Get- על מנת להשיג משהו
  • Set- על מנת להגדיר משהו
  • Start- על מנת להריץ משהו
  • Stop- על מנת לעצור משהו שרץ
  • Out- לקבלת פלט של משהו
  • New- ליצור משהו

אנו נציג כעת מספר פקודות מעניינות זריזות וקלות להפעלה:

הצגת רשימת תהליכים במערכת

הפקודה הבאה היא פקודה קצר ושימושית:

Get-Process

פעולה זו מציגה את רשימת התהליכים שכרגע רצים על המחשב שלכם, והיא נראית כך בפעולה:

PS C:\> Get-Process

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    822      74   142456       2664      10.28  17752   1 Acrobat
    584      31    18680       5448       1.39   7976   1 AcroCEF
    345      34    62664        948       2.44  15764   1 AcroCEF
    323      34    59624        700       2.11  16000   1 AcroCEF
    492      14     3280       1052       0.58  11360   1 acrotray
    214      14     2296       1232       0.06   4644   0 agent
    519      31    23480      27972      15.00  10604   1 ApplicationFrameHost
    146       9     1852       1160       0.02  21408   0 armsvc
    402      19     5360       1908       0.63   4776   0 arsm
    278      17    30132      24284       6.34   1804   0 audiodg
    236      14     4156      17192       0.05  24720   1 backgroundTaskHost
    260      17    24700       5276       0.34    452   1 chrome
    383      26    80356      15604      28.00   2980   1 chrome
    475      28    87740      86752       6.09   3344   1 chrome
    362      23    84316      62684     342.47   3632   1 chrome
    551      33    76576      44456     895.80   4036   1 chrome
    234      14    12068      14396       0.13   4516   1 chrome

להוצאת רשימה זו כטבלה מסודרת באקסל יש להשתמש בשיטה הבאה

פקודות שימושיות נוספות:

Get-Service- מציגה רשימה של Services עם הסטטוס שלהם

Get-Content- מציגה את התוכן הנמצא בתוך קובץ, לדוגמה:

Get-Content C:\intel\pinglog.txt

כמובן שאין צורך לשנן את כל הפקודות כולן. ניתן להשתמש בפקודה Get-Help Category לקבלת רשימת פקודות.

פקודות Cmdlets Custom

באפשרותך ליצור פקודות מותאמות אישית המורכבות ממספר פרמטרים.

שימוש בכלי PowerShell ISE משלים אוטומטית פרמטרים קיימים על סוגיהם, כל שתצטרך הוא להקליד את הסימן מינוס (-) לקבלת הרשימה:

לדוגמה הפקודה הבאה תציג תהליכים הרצים כעת ומתחילים באות W:

Get-Process -Name W* 

התוצאה:

PS C:\> Get-Process -Name W* 

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    979      28   167628       5008      74.23  10068   1 WavesSvc64
    527      22    24824       7188      66.47   5428   0 WavesSysSvc64
    156      11     1440       1156       0.13    876   0 wininit
    297      14     3348       4820       4.77   1188   1 winlogon
   1060      72    53200        336       2.28   9176   1 WinStore.App
   1090      49    41228      34892       3.36   4476   1 WINWORD
    102       6     1400       1956       0.27  19024   0 wlanext
    192      13     3132       4784       9.72  13892   0 WmiPrvSE
    282      14     5892      12920       1.98  19336   0 WmiPrvSE
    378      18     9012      14712      66.75   1040   0 WUDFHost
    370      12     5088       3920       2.88   1336   0 WUDFHost

אם שכחתם פרמטר, תוכלו תמיד להשתמש בפקודה הבאה להצגת הפרמטרים של אותה פקודה:

Get-Process | Get-Member
PS C:\> Get-Process | Get-Member 

   TypeName: System.Diagnostics.Process

Name                       MemberType     Definition
----                       ----------     ----------
Handles                    AliasProperty  Handles = Handlecount
Name                       AliasProperty  Name = ProcessName
NPM                        AliasProperty  NPM = NonpagedSystemMemorySize64
PM                         AliasProperty  PM = PagedMemorySize64
SI                         AliasProperty  SI = SessionId
VM                         AliasProperty  VM = VirtualMemorySize64
WS                         AliasProperty  WS = WorkingSet64

אם אתם לא מוצאים את פקודת ה-cmdlets, תוכלו לעדכן את ה-Help של אותה פקודה ולבדוק:

Update-Help #to update the help data
Get-Help Get-Process -Examples 

קיצורי דרך

כמו כל דבר בחיים גם כאן יש אפשרות לקיצורי דרך (כינויים). לכן, במקום לכתוב:

Start-Process notepad

ניתן לכתוב:

start notepad

ולקבל את אותה תוצאה.

כדי לראות את כל קיצורי הדרך הכניסו את הפקודה הבאה:

 Get-Alias

המדריך המלא והמקיף יוצע לרכישה בקרוב כאן באתר.