כל הכלים
חינם

מדריך PowerShell לחיפוש והדפסה — cmdlets, צינור, משתנים, קבצים, לולאות, פונקציות, אובייקטים וניהול. בחינם.

קבלת עזרה וגילוי

12
Get-Help Get-Process
הצגת עזרה ל-cmdlet
Get-Help Get-Process -Examples
הצגת דוגמאות שימוש ל-cmdlet
Get-Help Get-Process -Full
הצגת העזרה המלאה כולל פרמטרים
Get-Help about_Functions
קריאת נושא about_ מושגי
Update-Help
הורדת קבצי העזרה האחרונים
Get-Command -Noun Process
הצגת cmdlets הפועלים על שם עצם
Get-Command -Verb Get
הצגת cmdlets המשתמשים בפועל נתון
Get-Command *service*
חיפוש פקודות לפי שם עם תווים כלליים
Get-Process | Get-Member
הצגת המאפיינים והשיטות של אובייקטים
Get-Alias ls
הצגת לאיזו פקודה alias מתורגם
Get-Alias -Definition Get-ChildItem
הצגת כל ה-aliases ל-cmdlet
$PSVersionTable
הצגת גרסת ומהדורת PowerShell

משתנים וסוגים

13
$x = 5
השמת ערך למשתנה
[int]$n = '42'
הצהרה על משתנה מטופס בחוזקה
$null
הערך null / ריק
$true; $false
ליטרלים בוליאניים
$arr = @(1, 2, 3)
יצירת מערך
$arr += 4
הוספת אלמנט למערך
$arr[0]; $arr[-1]
אינדוקס אלמנט ראשון ואחרון במערך
$hash = @{ Name = 'Ann'; Age = 30 }
יצירת hashtable
$hash['Name']; $hash.Name
קריאת ערך hashtable לפי מפתח
$env:PATH
קריאת משתנה סביבה
$env:MY_VAR = 'value'
הגדרת משתנה סביבה ל-session
Get-Variable
הצגת כל המשתנים המוגדרים
[math]::Round(3.14159, 2)
קריאה לשיטת .NET סטטית

pipeline וסינון

12
Get-Process | Where-Object { $_.CPU -gt 10 }
סינון אובייקטים לפי תנאי
Get-Process | ? CPU -gt 10
סינון עם ה-alias ? ותחביר מפושט
Get-Process | ForEach-Object { $_.Name }
הרצת בלוק סקריפט לכל אובייקט
Get-Process | % { $_.Kill() }
מעבר עם ה-alias %
Get-Process | Select-Object Name, Id
שמירת מאפיינים מסוימים בלבד
Get-Process | Select-Object -First 5
לקיחת N האובייקטים הראשונים
Get-Process | Sort-Object CPU -Descending
מיון אובייקטים לפי מאפיין
Get-Process | Group-Object Company
קיבוץ אובייקטים לפי מאפיין
Get-Process | Measure-Object CPU -Sum
צבירת ערכים מספריים (סכום, ממוצע)
Get-ChildItem | Select-Object -Unique
החזרת אובייקטים ייחודיים
1..5 | ForEach-Object { $_ * 2 }
העברת טווח דרך transform
Get-Process | Out-GridView
שליחת תוצאות לרשת אינטראקטיבית

קבצים ונתיבים

13
Get-ChildItem -Path C:\Logs
הצגת פריטים בתיקייה (alias ls/dir)
Get-ChildItem -Recurse -Filter *.log
הצגת קבצים תואמים רקורסיבית
Get-Content .\file.txt
קריאת קובץ שורה אחר שורה
Get-Content .\file.txt -Tail 20
קריאת N השורות האחרונות של קובץ
Set-Content .\file.txt -Value 'Hi'
כתיבה (דריסה) של טקסט לקובץ
Add-Content .\file.txt -Value 'Hi'
הוספת טקסט לקובץ
Copy-Item a.txt b.txt
העתקת קובץ או תיקייה
Move-Item a.txt .\dir\
העברה או שינוי שם של פריט
Remove-Item a.txt -Force
מחיקת קובץ או תיקייה
New-Item -ItemType Directory -Path .\dir
יצירת קובץ או תיקייה חדשים
Test-Path .\file.txt
בדיקה אם נתיב קיים
Get-Location
הצגת התיקייה הנוכחית (alias pwd)
Set-Location C:\Temp
שינוי התיקייה הנוכחית (alias cd)

מחרוזות וטקסט

12
'Hello World' -match 'World'
בדיקת מחרוזת מול regex
'Hello' -replace 'l', 'L'
החלפת טקסט באמצעות regex
'a,b,c' -split ','
פיצול מחרוזת למערך לפי regex
'a-b-c'.Split('-')
פיצול באמצעות שיטת String של .NET
'a', 'b' -join ', '
חיבור אלמנטי מערך למחרוזת
Select-String -Path *.log -Pattern 'error'
חיפוש בסגנון grep על פני קבצים
'{0} of {1}' -f 3, 10
עיצוב מחרוזת עם placeholders
' hi '.Trim()
הסרת רווח לבן בתחילה ובסוף
'Hello'.ToUpper()
המרת מחרוזת לאותיות גדולות
'Hello'.Substring(0, 3)
חילוץ תת-מחרוזת לפי אינדקס ואורך
'Hello'.Contains('ell')
בדיקה אם מחרוזת מכילה טקסט
'Hello'.Length
קבלת מספר התווים

לולאות ותנאים

12
if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
הסתעפות עם if / elseif / else
switch ($x) { 1 { 'one' } default { 'other' } }
התאמת ערך מול cases
foreach ($i in $arr) { $i }
מעבר על אוסף
for ($i = 0; $i -lt 5; $i++) { $i }
לולאה מנויה עם אינדקס
while ($x -lt 10) { $x++ }
לולאה כל עוד תנאי אמת
do { $x++ } while ($x -lt 10)
לולאה לפחות פעם אחת, ואז בדיקה
$x -eq 5; $x -ne 5
השוואות שווה ולא-שווה
$x -gt 5; $x -lt 5
השוואות גדול-מ ו-קטן-מ
$x -ge 5; $x -le 5
השוואות גדול/קטן-או-שווה
'abc' -like 'a*'
השוואת התאמה עם תווים כלליים
@(1, 2, 3) -contains 2
בדיקת חברות במערך
break; continue
יציאה או דילוג על איטרציית הלולאה הנוכחית

פונקציות וסקריפטים

12
function Get-Sum { param($a, $b) $a + $b }
הגדרת פונקציה עם פרמטרים
Get-Sum -a 2 -b 3
קריאה לפונקציה עם ארגומנטים בעלי שם
function Test { param([int]$n = 1) }
פרמטר מטופס עם ערך ברירת מחדל
param([Parameter(Mandatory)]$Name)
דרישה לספק פרמטר
return $value
החזרת ערך מפונקציה
function F { [CmdletBinding()] param() }
יצירת פונקציה מתקדמת (פרמטרים נפוצים)
Write-Verbose 'msg' -Verbose
פליטת זרם הודעות מפורט
Write-Output $result
שליחת אובייקט ל-pipeline
Write-Error 'failed'
כתיבה לזרם השגיאות
.\script.ps1 -Arg value
הרצת קובץ סקריפט עם ארגומנטים
. .\functions.ps1
dot-source של סקריפט לתוך ה-session
try { } catch { $_ } finally { }
טיפול בשגיאות מסיימות

אובייקטים ומאפיינים

12
Get-Process | Select-Object -ExpandProperty Name
החזרת ערכי מאפיין גולמיים, לא אובייקטים
(Get-Process).Name
גישה למאפיין בכל אובייקט
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
הוספת מאפיין מחושב
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
בניית אובייקט מותאם
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
צירוף מאפיין לאובייקט
$obj.PSObject.Properties.Name
הצגת שמות המאפיינים של אובייקט
$obj | Format-Table -AutoSize
הצגת אובייקטים כטבלה מיושרת
$obj | Format-List *
הצגת כל המאפיינים כרשימה
$obj | ConvertTo-Json -Depth 5
סריאליזציה של אובייקט ל-JSON
Get-Content data.json | ConvertFrom-Json
ניתוח JSON לאובייקטים
$obj | Export-Csv out.csv -NoTypeInformation
ייצוא אובייקטים לקובץ CSV
Import-Csv data.csv
קריאת קובץ CSV לאובייקטים

תהליכים ושירותים

12
Get-Process
הצגת תהליכים פעילים (alias ps)
Get-Process -Name chrome
קבלת תהליכים לפי שם
Stop-Process -Name notepad -Force
סיום תהליך
Start-Process notepad.exe
הפעלת תהליך חדש
Get-Service
הצגת שירותי Windows
Get-Service -Name wuauserv
קבלת שירות לפי שם
Start-Service -Name wuauserv
הפעלת שירות עצור
Stop-Service -Name wuauserv
עצירת שירות פעיל
Restart-Service -Name wuauserv
הפעלה מחדש של שירות
Set-Service -Name wuauserv -StartupType Manual
שינוי מצב ההפעלה של שירות
Get-EventLog -LogName System -Newest 20
קריאת רשומות event-log קלאסיות אחרונות
Get-WinEvent -LogName Application -MaxEvents 20
שאילתת event logs מודרניים

remoting ו-jobs

12
Enter-PSSession -ComputerName Srv01
התחלת session מרוחק אינטראקטיבי
Exit-PSSession
יציאה מ-session מרוחק אינטראקטיבי
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
הרצת פקודה על host מרוחק
$s = New-PSSession -ComputerName Srv01
יצירת session מרוחק קבוע
Invoke-Command -Session $s -ScriptBlock { hostname }
שימוש חוזר ב-session מרוחק קיים
Remove-PSSession $s
סגירה והסרה של session מרוחק
Start-Job -ScriptBlock { Get-Process }
הרצת פקודה כ-job ברקע
Get-Job
הצגת jobs ברקע ומצבם
Receive-Job -Id 1 -Keep
אחזור הפלט של job
Wait-Job -Id 1
חסימה עד שה-job מסתיים
Stop-Job -Id 1; Remove-Job -Id 1
עצירה והסרה של job ברקע
Get-Process | Start-ThreadJob { $input }
הרצת thread jobs קלילים בתהליך

מודולים וחבילות

12
Get-Module
הצגת מודולים טעונים כעת
Get-Module -ListAvailable
הצגת כל המודולים המותקנים
Import-Module Pester
טעינת מודול לתוך ה-session
Remove-Module Pester
פריקת מודול מה-session
Find-Module -Name PSReadLine
חיפוש מודול ב-gallery
Install-Module PSReadLine -Scope CurrentUser
התקנת מודול מה-gallery
Update-Module PSReadLine
עדכון מודול מותקן
Uninstall-Module PSReadLine
הסרת מודול מותקן
Get-ExecutionPolicy
הצגת מדיניות הרצת הסקריפטים הנוכחית
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
התרת הרצת סקריפטים חתומים ומקומיים
Get-PSRepository
הצגת מאגרי חבילות מוגדרים
$PROFILE
נתיב לסקריפט הפרופיל של המשתמש הנוכחי

אף רשומה אינה תואמת ל-„:q”.


שתף זאת
צריך עזרה?
נתקלת בבעיה בכלי הזה? ספר לצוות שלנו.
דיווח על בעיה

הוסיפו כלי חינמי זה לאתר שלכם — העתיקו והדביקו את הקוד שלהלן.