[novashare_inline_content]
במאמר זה, נבחן כיצד ליצור את סקריפט PowerShell הראשון שלך, פקודות בסיסיות וטיפים. זכור שתרגול הוא המפתח לשליטה ב- PowerShell. ככל שתכתוב יותר סקריפטים, כך תבין יותר את השפה ואת תכונותיה.
האם אתה יודע את שפת המחשב PowerShell? יליד 2006, הוא החליף את ה-CMD, בפונקציות חזקות יותר, אך גם בשמות פונקציות אינטואיטיביים יותר. PowerShell הוא גם כלי אוטומציה של משימות מערכת מבית מיקרוסופט. הוא מבוסס על ממשק שורת פקודה המאפשר אינטראקציה עם כל המשאבים של מערכת ההפעלה Windows. ישנן מספר גרסאות, 5.2 מותקנות מראש עם Windows או אפילו multiplatform v7. אתה יכול גם בקלותמכיר את גרסת PowerShellמותקן על המערכת שלך.
כתיבת סקריפטים מורכבת מכתיבת סקריפטים, או תוכניות המייצרות משימות חוזרות או מורכבות אוטומטיות. תוכנית אחרת או PowerShell יכולה לקרוא לסקריפטים כדי להפעיל אותם. שפת הסקריפט שלו מבוססת על .NET Framework של מיקרוסופט, המאפשרת לו ליצור אינטראקציה עם משאבי NET, כגון אובייקטי COM או שירותי אינטרנט.
בחר את עורך PowerShell שלך
אתה יכול להשתמש בכל עורך טקסט כדי ליצור סקריפט ב- PowerShell. עם זאת, הנה רשימת העיקריים שבהם:
- PowerShell ISE: משולב ב-Windows, קל לשימוש וכולל ממשק גרפי המאפשר לתפעל סקריפטים עם העכבר.
- Visual Studio Code: עורך קוד חינם שפותח על ידי מיקרוסופט. הוא פופולרי מאוד בקרב מפתחים ומציע הרחבות לשיפור חווית הפיתוח של PowerShell.
- פנקס רשימות++: עורך טקסט בקוד פתוח עבור Windows תואם לשפות רבות. זה קל ומהיר, וניתן להשתמש בו לכתיבת כל סוגי התסריטים.
- טקסט נשגב: העורך ניתן להתאמה אישית וכולל תכונות מתקדמות לפיתוח PowerShell. זה בתשלום ותואם עבור Windows, macOS ו- Linux.
ההבדלים העיקריים טמונים בסגנון האפליקציה, אך גם בנוחות השימוש בה. לדוגמה, חלקם מציעים לך מבט כולל על התסריט ואחרים מספקים צביעה משתנה או אפילו השלמה אוטומטית כדי לעזור לך.
אתה יכול גם להשתמש ב-Windows Notepad כדי ליצור את סקריפט PowerShell הראשון שלך, אבל זה לא יספק לך שום עזרה או עיצוב מיוחד. כדי להתחיל, אנו ממליציםPowerShell ISE, מותקן כסטנדרט תחת Windows, שיעזור לך בכתיבה.
אפשר לסקריפטים לפעול
לפני שאתה קופץ ליצירת הסקריפט הראשון שלך, עליך לאפשר לסקריפטים של PowerShell לפעול במחשב האישי שלך. ואכן, מטבע הדברים, Windows אוסר על ביצוע סקריפטים של PowerShell כדי להגן על המחשב שלך מפני קוד הונאה. אם תנסה להריץ סקריפט ללא אישור מוקדם, תקבל שגיאה "טעינת הקובץ c:\… נכשלה. מכיוון שהפעלת סקריפט מושבתת במערכת זו» :
אתה יכול לבדוק את מצב הביצוע של סקריפטים עם הפקודה הבאה ב-aחלון PowerShell:
Get-ExecutionPolicy
תקבל אחד מהערכים הבאים:
- מוגבל: מונע ביצוע של כל סקריפט PowerShell, ללא קשר למקור. ניתן להפעיל סקריפטים של PowerShell רק אם הם חתומים דיגיטלית על ידי מפרסם מהימן או אם המשתמש אישר במפורש לסקריפט לפעול.
- AllSigned: מאפשר ביצוע של סקריפטים של PowerShell שנחתמו דיגיטלית על ידי עורך מהימן. לא ניתן להפעיל סקריפטים של PowerShell ממקורות לא מהימנים.
- RemoteSigned: מאפשר ביצוע של סקריפטים של PowerShell שנחתמו דיגיטלית על ידי מפרסם מהימן, כמו גם סקריפטים של PowerShell הפועלים באופן מקומי במערכת. לא ניתן להפעיל סקריפטים של PowerShell ממקורות לא מהימנים.
- ללא הגבלה: מאפשר ביצוע של סקריפטים של PowerShell, ללא קשר למקור שלהם. אם תפעיל סקריפט מהאינטרנט, תתבקש לאשר.
- לַעֲקוֹף: משבית לחלוטין את בדיקת מדיניות הביצוע, ומאפשר לכל הסקריפטים של PowerShell לפעול, בין אם חתומים או לא. זה יכול להיות מסוכן מאוד אם סקריפטים זדוניים מבוצעים על מערכת.
כדי להיות מסוגל להריץ סקריפט שנוצר באופן מקומי, נגדיר מדיניותRemoteSigned, עם הcommande Set-ExecutionPolicyבחלון PowerShell כמנהל:
Set-ExecutionPolicy Remote Signed
כעת אתה מוכן להתחיל את סקריפט PowerShell הראשון שלך!
צור את סקריפט PowerShell הראשון שלך
כעת תלמד כיצד לעצב את סקריפט Powershell הראשון שלך. צור קובץ עם הסיומת.ps1
, למשל"monscript.ps1
» (זו הרחבת סקריפטים של PowerShell), אותה תערוך עם פנקס רשימות.
לחלופין, התחל לכתוב ישירות בחלון PowerShell ISE:
כדי להתחיל עם PowerShell scripting, חשוב להבין את האלמנטים הבסיסיים של השפה, כגון פקודות, משתנים ופונקציות. להלן דוגמה פשוטה של סקריפט המציג את מחרוזת התווים "Hello world!" » בקונסולה:
הקלד את ההצהרה הבאה בעורך שלך ואז שמור את הקובץ. הפקודה "Write-Host" מציגה מחרוזת תווים במסוף.
Write-Host "Hello world !"
לאחר שכתבת את הסקריפט שלך, תוכל להפעיל אותו על ידי פתיחת PowerShell והקלדת שם הסקריפט שלך ואחריו ".ps1". לדוגמה, אם הסקריפט שלך נקרא "myscript.ps1", תוכל להריץ אותו על ידי הקלדת הפקודה הבאה במסוף:
.\monscript.ps1
זה יריץ את הסקריפט שלך ויציג את התוצאות במסוף:
💡 כדי להמשיך לתרגל יצירת סקריפטים, אתה יכול לבדוק את שלנודוגמאות של סקריפטים PowerShell.
הרכיבים של סקריפט PowerShell
סקריפט PowerShell מורכב ממספר אלמנטים, שהעיקריים שבהם:
הזמנות
פקודות הן הוראות המבצעות פעולות ב- PowerShell. פקודות מתחילות עם פועל המתאר את הפעולה שיש לבצע, ולאחריה שם עצם המתאר את האובייקט עליו מבוצעת הפעולה.
הנה דוגמה לפקודה של PowerShell לרשימת התוכן של ספרייה:
Get-ChildItem C:\\\\mon_repertoire
פקודה זו משתמשת בפקודהGet-ChildItem
לרשימת התוכן של הספרייהC:\\\\mon_repertoire
. אתה יכול להחליףC:\\\\mon_repertoire
לפי הנתיב של הספרייה שברצונך לרשום.
הערות
הערות מתחילות בתו הפאונד (#) ועוזרות להסביר את הקוד וכיצד הוא פועל. PowerShell מתעלם מהערות בעת הפעלת הסקריפט.
הנה דוגמה להערה ב- PowerShell:
# Ceci est un commentaire.
# Il ne sera pas exécuté par PowerShell.
משתנים
משתנים הם רכיבי קוד המאפשרים לאחסן ערכים. משתנים ב-PowerShell מתחילים בסימן הדולר ($) ויכולים להכיל אותיות, מספרים ותווים מיוחדים.
הנה דוגמה למשתנה ב- PowerShell:
$nom = "Clément"
פונקציות
פונקציות הן בלוקי קוד הניתנים לשימוש חוזר המבצעים משימות ספציפיות. פונקציות מתחילות במילת המפתח "פונקציה", ואחריה שם הפונקציה ופרמטרי הקלט.
הנה דוגמה פשוטה לפונקציית PowerShell:
function Add-Numbers {
param (
[int]$a,
[int]$b
)
$result = $a + $b
return $result
}
Add-Numbers -a 3 -b 4
פונקציה זו נקראת "Add-Numbers", ולוקחת שני פרמטרים: "a" ו-"b". לאחר מכן הוא מוסיף את שני הפרמטרים ומחזיר את התוצאה.
לולאות
לולאות מאפשרות לך לחזור על הוראות מספר פעמים. ישנם מספר סוגים של לולאות ב-PowerShell, כגון לולאת For, לולאה Foreach ולולאת While.
הנה דוגמה ללולאה קדמית המציגה שמות של קבצים מרובים:
$files = Get-ChildItem "C:\\\\Users\\\\Clement\\\\Documents"
foreach ($file in $files) {
Write-Host $file.Name
}
בסקריפט זה, הפקודהGet-ChildItem
מאחזר רשימה של קבצים בתיקייה שצוינה. הלולאהforeach
עובר לולאות בכל קובץ ברשימה ובפקודהWrite-Host
מציג את השם של כל קובץ.
תנאים
התנאים מאפשרים לך לבצע הוראות בהתבסס על תנאים מסוימים. ישנם מספר סוגים של תנאים ב-PowerShell, כגון תנאי ה"אם", תנאי ה-"Switch" ותנאי ה-Try-Catch.
הנה דוגמה פשוטה לתנאי ב- PowerShell:
# Entrer un nombre
$nombre = Read-Host "Entrez un nombre"
# Vérifier si le nombre est pair ou impair
if ($nombre % 2 -eq 0) {
Write-Host "$nombre est pair"
} else {
Write-Host "$nombre est impair"
}
בסקריפט זה, הפקודהRead-Host
מבקש מהמשתמש להזין מספר. התנאיif
בודק אם המספר אפילו משתמש באופרטור המודולו%
. אם המספר זוגי, התסריט מציג "הוא זוגי". אחרת, הוא מציג אז "הוא מוזר".
צינור
הצינור מאפשר לשרשר פקודות ולשדר את התוצאות מפקודה אחת לאחרת. צינור PowerShell משתמש ב-"| ".
הנה דוגמה לצינור PowerShell:
# Récupérer la liste des fichiers dans un dossier
Get-ChildItem -Path C:\\\\MonDossier -Recurse |
# Filtrer les fichiers pour n'inclure que ceux dont l'extension est .txt
Where-Object {$_.Extension -eq ".txt"} |
# Trier les fichiers par date de création
Sort-Object -Property CreationTime |
# Sélectionner les 10 derniers fichiers
Select-Object -Last 10 |
# Afficher le nom et la date de création de chaque fichier
ForEach-Object {Write-Host $_.Name, $_.CreationTime}
כמה טיפים וטריקים עבור סקריפטים של PowerShell שלך
בקש עזרה ב- PowerShell
הפקודה "קבל עזרה" מאפשרת לך לקבל עזרה בפקודה ספציפית. לדוגמה, אם אתה רוצה עזרה עם הפקודה "Write-Host", הקלד את הפקודה הבאה במסוף PowerShell:
Get-Help Write-Host
אפשר גם לבקש דוגמאות לשימוש בפקודה:
Get-Help Get-Service -examples
השתמש בכינויים
אם יש לך כמה יסודות ב-CMD, תוכל למצוא את רוב הפקודות שבהן אתה כבר משתמש ב- PowerShell. אלה נקראים כינויים. כדי לרשום אותם, יש פקודה:
Get-Alias
עבור הנלהבים ביותר, אפשר אפילו ליצור כינויים משלך!
השתמש במשתנים היטב
משתנים הם רכיבי קוד המאפשרים לך לאחסן ערכים. משתנים ב-PowerShell מתחילים בסימן הדולר ($) ויכולים להכיל אותיות, מספרים ותווים מיוחדים. הנה איך להכריז ולהשתמש במשתנה ב- PowerShell:
# Déclaration d'une variable
$nom_variable = "valeur"
# Exemple d'utilisation d'une variable
Write-Host $nom_variable
משתנים ב- PowerShell יכולים להכיל סוגים שונים של נתונים, כגון מחרוזות, מספרים, מערכים ואובייקטים. להלן כמה דוגמאות להצהרות משתנות ב- PowerShell:
# Chaîne de caractères
$nom = "John"
# Nombre
$age = 30
# Tableau
$prenoms = @("John", "Jane", "Mike")
# Objet
$personne = @{
Nom = "Doe"
Prenom = "John"
Age = 30
}
אפשר גם לשנות את הערך של משתנה ב- PowerShell:
$nom = "Jane"
אתה יכול לקרוא למשתנים בפקודות PowerShell כך:
# Utiliser une variable dans une commande
$nom_fichier = "mon_fichier.txt"
Get-Content $nom_fichier
חשוב לבחור שמות משתנים משמעותיים כדי להפוך את הקוד לקל יותר להבנה. שמות משתנים ב-PowerShell חייבים להתחיל באות ואסור להכיל רווחים. השתמש באותיות גדולות כדי להפריד בין מילים בשמות משתנים (למשל $FileName) כדי להקל על הקריאה.
נצל את המודולים
PowerShell מביאה תכונה חדשה מעשית מאוד: מודולים. מודול PowerShell הוא ספרייה של PowerShell cmdlets ופונקציות. מודולים מאפשרים לך לקבץ cmdlets ופונקציות קשורות בחבילה אחת, מה שהופך אותם לקלים יותר לשימוש. ניתן ליצור ולשתף אותם עם משתמשים אחרים כדי לפשט את הניהול של סקריפטים מורכבים או להפוך משימות ספציפיות לאוטומטיות. ניתן להתקין מודולים של PowerShell באמצעות הפקודהInstall-Module
וניתן לייבא אותו לסקריפט באמצעות הפקודהImport-Module
. ישנם גם מודולים רבים של PowerShell זמינים באינטרנט שיכולים לבצע משימות ספציפיות.
כדי לרשום את המודולים הקיימים במחשב האישי שלך, תוכל להשתמש בפקודה זו:
Get-Module -ListAvailable