כיצד לפתוח את PowerShell, כל השיטות. Windows PowerShell: מה זה?

ייתכן שמשתמשים מנוסים במערכת ההפעלה Windows 10 שמעו על כלי השירות של שורת הפקודה PowerShell. בעלי ניסיון בעבודה עם Windows 7 ו-8.1 עשויים גם להכיר את זה. לאחר שנים של שימוש באפליקציית שורת הפקודה של Windows ובקבצי .bat, הגיע הזמן להכיר כלי חזק יותר.

PowerShell היא תוספת חשובה לרשימת כלי Windows, והיקפה עשוי להיות מאיים עבור משתמשים מסוימים. מה זה - שפת סקריפטים או מעטפת פקודה? אל דאגה: למרות היכולות הנרחבות, כל אחד יכול לשלוט ב- PowerShell.

שלב 1: התקנה

ראשית, אנחנו צריכים את כלי השירות PowerShell עצמו. אם אתה מפעיל את Windows 10, כבר מותקנת אצלך גרסה 5 של PowerShell. עדכון יום השנה של Windows 10 משתמש בגרסה 5.1, אך ההבדל אינו מורגש. Windows 8 ו-8.1 משתמשים ב-PowerShell 4, וזה גם די מספיק. התקנת PowerShell ב-Windows 7 לא תגרום לבעיות, אך עדיין תצטרך לבצע כמה צעדים נוספים. במיוחד, עליך להתקין בנוסף את .Net Framework. אתה יכול להתקין את Windows Management Framework, הכוללת את PowerShell.

ל- PowerShell שני ממשקים. משתמשים מתקדמים יכולים לבחור בממשק GUI מלא הידוע בשם Integrated Scripting Environment (ISE). למתחילים, עדיף להשתמש בקונסולת PowerShell, ממשק פשוט מבוסס שורת פקודה של Windows, או אפילו DOS 3.2.

כדי להפעיל את PowerShell כמנהל מערכת ב-Windows 10, לחץ על לחצן התחל וגלול מטה אל Windows PowerShell. ב-Windows 8.1, חפש את Windows PowerShell בתיקיית System ב-Windows. ב-Windows 7, המעטפת ממוקמת בתיקיית האביזרים. כמשתמש רגיל, ניתן להפעיל את PowerShell באותו אופן, באמצעות לחצן העכבר השמאלי במקום הימני.

אתה יכול להשתמש בחיפוש בכל גרסה של Windows. כדי להקל על שימוש עתידי, אתה יכול להצמיד את PowerShell לשורת המשימות.

שלב 2: פקודות ישנות של Windows

תחביר הפקודות של Windows ב- PowerShell עובד כרגיל. לדוגמה, CDמשנה תיקיות, דירמציג רשימה של כל הקבצים והתיקיות שבתיקייה הנוכחית.

תלוי איך אתה מפעיל את קונסולת PowerShell, ייתכן שתתחיל פנימה c:\Windows\system32או ב-c :\משתמשים\ . הדוגמה בצילום המסך משתמשת בפקודה CD..(עם רווח) כדי לעבור רמה אחת בכל פעם, ואז הפעל את הפקודה דירכדי להציג רשימה של קבצים ותיקיות בספרייה C:\.

שלב 3: התקן קבצי עזרה

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

כדי להתחיל עם PowerShell, הקלד עֶזרָהואת הפקודה שאתה צריך. צילום המסך מציג את הפקודה .

קְבוּצָה עֶזרָהאומר ש דירהוא כינוי לפקודת PowerShell Get-ChildItem. אם אתה מקליד get-childitit V נ.ב. C:\>, תראה את אותו הדבר כמו בעת שימוש בפקודה דיר.

כפי שצוין בתחתית צילום המסך, קבצי עזרה עבור PowerShell אינם מותקנים באופן אוטומטי. כדי להשיג אותם, הפעל את PowerShell כמנהל והקלד עדכון-עזרה. התקנת קבצי העזרה תימשך מספר דקות; ייתכן שחסרים מספר מודולים - לדוגמה, במקרה זה, עזרה עבור NetWNV ו-SecureBoot לא הותקנו. כשהכל מוכן, מערכת העזרה השלמה תמיד תספק את הטיפים הדרושים.

כעת הקלד את הפקודה תקבל עזרהוכל פקודה שאתה מעוניין בה ("cmdlet" ב-PowerShell, cmdlets ברוסית), התיאור שלה יוצג. לדוגמה, get-help get-childititמציג רשימה של אפשרויות get-childitit. אתה יכול גם להציג אפשרויות אפשריות שונות. לדוגמה

get-help get-childitem -דוגמאות

מספק שבע דוגמאות שימוש מפורטות get-childitit. קְבוּצָה

get-help get-childitem -מפורט

כולל את שבע הדוגמאות הללו והסברים מפורטים של כל פרמטר ב-cmdlet get-childitit.

שלב 4: קבל עזרה בהגדרות

בצילום המסך אולי שמת לב לשתי רשימות מתחת תחבירל get-childitit. שני תחבירים שונים פירושו שיש שתי דרכים להפעיל את ה-cmdlet. איך לשמור על התחביר נפרד זה מזה ומה המשמעות של הפרמטרים? התשובה פשוטה אם אתה יודע את הטריק.

לפרטים לגבי פרמטרים של cmdlet get-childititאו כל פרמטר שימוש אחר -מלא:

get-help get-childitem -מלא

זה נותן לך רשימה של מה אתה יכול לעשות עם ה-cmdlet ומה יקרה. תסתכל על צילום המסך.

עיון בתיאורי הפרמטרים, תבחין בכך get-childititמאפשר להשיג חפץ יֶלֶד(כגון שם תיקיית משנה או שם קובץ) במיקום מוגדר, עם או בלי התאמת תווים מסוימים. לדוגמה:

get-childItem "*.txt" -recurse

מחזירה רשימה של קבצי "*.txt" בתיקייה הנוכחית ובכל תיקיות המשנה (בשל הפרמטר -חזרה). ואילו

get-childitem "HKLM:\Software"

מחזירה רשימה של כל מפתחות הרישום ברמה העליונה ב HKEY_LOCAL_MACHINE\Software.

אם אי פעם ניסית להיכנס לרישום באמצעות שורת הפקודה של Windows או קבצי bat, תעריך את הפונקציונליות של אפשרות גישה זו.

שלב 5: לימוד שמות

יש סיבה לכך שה-cmdlets שהוצגו עד כה נראים דומים: get-childitem, update-help, get-helpהשתמש בתבנית פועל-שם עצם יחיד. כל ה-cmdlets של PowerShell משתמשים במוסכמה זו; הם משתמשים בעבודה לפני שם עצם בודד. זה יפנה לאלה שסבלו פעם משמות פקודות לא עקביים בשפות VB ו-VBA.

תסתכל על ה-cmdlets הנפוצים ביותר:

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

לקבל תוכן: מקבל את תוכן הקובץ

קבל פריט: מאחזר קבצים ותיקיות

פריט העתק: מעתיק אובייקט ממיקום אחד לאחר

הסר פריט: מוחק קבצים ותיקיות

: מקבל תהליכים הפועלים במחשב מקומי או מרוחק

לקבל שירות: מקבל שירותים הפועלים במחשב מקומי או מרוחק

invoke-webrequest: מאחזר תוכן מדף אינטרנט באינטרנט

כדי לראות כיצד עובד cmdlet ספציפי, השתמש תקבל עזרהכמו במקרה

get-help copy-item -מלא

בהתבסס על התיאור בעזרה, אתה יכול להבין מה צריך ה-cmdlet. לדוגמה, אם אתה רוצה להעתיק את כל הקבצים והתיקיות מ מסמכים V c:\temp, להשתמש

פריט העתק c:\users\ \documents\* c:\temp

על ידי הקלדת פקודה זו, תראה מספר תכונות מעניינות של סביבת PowerShell. לדוגמה, אם אתה מקליד copy-iולחץ על הלחצן Tab, PowerShell ימלא העתק-פריט. אם אתה מקליד cmdlet בצורה שגויה ו-PowerShell לא יכול לזהות אותו, ניתן תיאור מלא של מה שנעשה לא נכון.

נסה את ה-cmdlet הזה:

invoke-webrequest askwoody.com

תקבל רשימה קצרה של כותרות, תמונות, קישורים ותוכן אחר של דף האינטרנט. נא לציין ב תקבל עזרהלרשימה invoke-webrequest, ש"מחזיר אוסף של טפסים, קישורים, תמונות ושאר רכיבי HTML חשובים" - בדיוק מה שצריך להיות מוצג על המסך.

כמה cmdlets עוזרים לך לנהל את PowerShell עצמו:

קבל-פקודה: רשימה של כל ה-cmdlets הזמינים

קבל-פועל: רשימה של כל הפעלים הזמינים

ברור-מארח: נקה את מסך התוכנית המארח

פרמטרים שונים מאפשרים לך לצמצם פקודות ולצמצם את מגוון האפשרויות השימושיות. לדוגמה, כדי לראות רשימה של כל רכיבי ה-cmdlet שעובדים עם שירותי Windows, הקלד

קבל-פקודה *-שירות

כל הפעלים הזמינים עם שם העצם יוצגו שֵׁרוּת. הנה הרשימה שלהם:

Get-Service

שירות חדש

הפעלה מחדש-שירות

שירות קורות חיים

סט-שירות

התחל שירות

להפסיק את השירות

שירות להשעות

אתה יכול לשלב את ה-cmdlets האלה עם אחרים.

שלב 6: שימוש בצינורות

אם אתה מכיר את שורת הפקודה של Windows או קבצי אצווה, אז אתה יודע על ניתוב מחדש ו-pipes. ניתוב מחדש (> סמל) וצינורות (| סמל) לוקחים את התוצאה של פעולה ומצמידים אותה למיקום אחר. לדוגמה, אתה יכול לנתב מחדש את התוצאה של הפקודה דירלקובץ טקסט או להעביר את התוצאה של הפקודה פינגלצוות למצואלסנן תוצאות מעניינות כמו

dir > temp.txt

ping askwoody.com | מצא "מנות" > temp2.txt

כאן בצוות השני למצואמחפש מחרוזת מנות, נלקח מהכתובת askwoody.com על ידי הצוות פינגומשרשרת את כל השורות התואמות לקובץ שנקרא temp2.txt.

הראשונה מבין הפקודות הללו עובדת מצוין ב- PowerShell. כדי להפעיל את הפקודה השנייה תצטרך משהו כמו

ping askwoody.com | חבילות בחר מחרוזת | קובץ out-temp2.txt

שימוש בניתוב מחדש וב-pipes מרחיב מאוד את היכולות של שורת הפקודה של Windows: במקום לגלול אינסופי במורד המסך כדי לחפש מחרוזת טקסט, אתה יכול לסנן את פקודות Windows שאתה צריך.

ל- Powershell יש תמיכה צינור, וזה לא מוגבל לטקסט. PowerShell מאפשר לך להעביר אובייקט שלם מ-cmdlet אחד לאחר, כאשר האובייקט הוא שילוב של נתונים (הנקראים מאפיינים) ופעולות (שיטות) שיכולות להשתמש בנתונים אלה.

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

איך להבין זאת? השתמש ב-cmdlet קבל-חבר. אם אתה רוצה לדעת איזה סוג של אובייקט Cmdlet מעבד, הפעל אותו קבל-חבר. לדוגמה, אם אתה מנסה להבין את התהליכים הרצים במחשב וצמצמת את האפשרויות שלך ל-cmdlets , הנה איך לגלות את התוצאה של ה-cmdlets:

get-process | קבל-חבר

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

TypeName: System.Diagnostics.Process

צילום המסך שלהלן מציג גם את המאפיינים רַשַׁאִי get-process Handles, Name, NPM, PM, SI, VMו ו.ס..

אם אתה רוצה לתפעל את התוצאה כדי לעבוד עם cmdlet זה (במקום להציג רשימה ארוכה של תהליכים פעילים על הצג), עליך למצוא פקודה אחרת שמקבלת כקלט מערכת.אבחון.תהליך. כדי למצוא את ה-cmdlet שאתה צריך, השתמש שוב ב- PowerShell:

get-command -Parametertype System.Diagnostics.Process

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

חלק מה-cmdletים ידועים כמקבלים כמעט כל סוג של נתונים. העיקרי שבהם הוא . cmdlet זה עובר דרך כל אובייקט שנשלח דרך הצינור, אחד אחד, ומחיל עליו את קריטריוני הבחירה שצוינו. יש סמן מיוחד שנקרא $_ , המאפשר לך להשתמש בכל פריט בצינור, אחד בכל פעם.

נניח שאתה רוצה לקבל רשימה של כל התהליכים הפועלים במחשב עם השם "svchost", כלומר, אתה רוצה להתאים את המאפיין שֵׁםתהליך svchost. השתמש בפקודה:

get-process | where-object ($_.Name -eq "svchost")

Cmdlet מסתכל על כל חפץ מערכת.אבחון.תהליך, משווה .שֵׁםאובייקט זה עם "svchost"; אם יש התאמות, הן מוצגות על הצג. תסתכל על צילום המסך.

שלב 7: נתח פקודות PowerShell שימושיות

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

פקודות אלו פועלות רק ב- Windows 10 ורק כאשר אתה מפעיל את PowerShell כמנהל מערכת. הם נועדו להתקין מחדש יישומי Windows 10 שהותקנו מראש ויכולים להיות שימושיים עבור אלה שהסירו תחילה את התוכניות הללו ולאחר מכן החליטו להחזיר אותן. הפקודות נראות כך:

Get-AppXPackage | Foreach (Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml")

אם אתה מפעיל פקודה זו, התעלם מהאזהרות האדומות וכאשר הפקודה תושלם, הפעל מחדש את המחשב; כל התוכניות המותקנות מראש ב-Windows 10 יופיעו במקומן.

כך פועלת הפקודה הזו. Get-AppXPackageבודק את כל חבילות האפליקציות בפרופיל המשתמש. גם אם תמחק את האפליקציה, היא תישאר ברשימת פרופילי המשתמש.

Cmdlet Get-AppXPackageמחזיר אובייקט TypeName Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage, הכולל את השם המלא של חבילת היישום ואת המיקום של קובץ המניפסט המתאים ב-XML. אם אתה מפעיל את ה-cmdlet get-appxpackage, תראה רשימה ארוכה של חבילות יישומים. צילום המסך מציג את התיאור של אפליקציית ה-Xbox.

Cmdlet לכל אחדעוברים דרך כל אובייקט פנימה AppXPackageעל ידי שליחתם ל-cmdlet Add-AppxPackage. לפי תקבל עזרהל Add-AppxPackage, ישנם שני מתגי מפתח:

  • החלף -הירשםמשמש לרישום התקנות קיימות של חבילות יישומים, אתה יכול להגדיר פרמטרים DisableDevelopmentModeו הירשם
  • החלף -DisableDevelopmentModeאומר ל-Windows לרשום מחדש חבילת יישומים קיימת שהושבתה, לא נרשמה או פגומה.

קו" $($_.InstallLocation)\AppXManifest.x ml" מתאר היכן נמצא הקובץ manifest.xml. אם תסתכל על הקבצים AppXManifest.xml, תראה רשימה מורכבת של מזהי יישומים, קבצי הפעלה ומספר רב של אלמנטים ויזואליים המשויכים ליישום.

לאחר האתחול מחדש, כל חבילות היישומים שנוספו יורדות ומותקנות מחנות Windows.

יותר משנה חלפה מאז השקת Windows 7 ו- Server 2008.

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

רוב המשתמשים המתחילים אפילו לא יודעים מה זה PowerShell (PS).

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

בואו להכיר את היכולות העיקריות של תוכנית זו, תוך מתן תשומת לב רבה יותר לפונקציה של יצירה והרצה של סקריפטים (קושחה).

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

מה זה Windows PowerShell?

פגז כוח– מתורגמן המבוסס על .NET Framework, מצויד בשפת סקריפטים משלו.

הראשון אומר שהוא עובד במצב טקסט: אתה מזין פקודה, מפעיל אותה, ועל המסך אתה רואה את התוצאה של הביצוע שלה.

כפי שהיה ב-MS-DOS ובגירסאות ישנות יותר של UNIX.

השני מפשט, מזרז וממכן משמעותית את הניהול והתחזוקה של מערכות, יישומים, תהליכים ושירותים נלווים על ידי מנהלי מערכת ומשתמשים רגילים.

בהשוואה למתורגמנים אחרים, נ.ב. זה שונה:

  • אינטגרציה עם - מאפשר לך ליצור סקריפטים רבי עוצמה על ידי הכנסת קוד תוכנית לתוכם;
  • כל הנתונים המוחזרים הם אובייקטים, לא נתוני טקסט/מחרוזת, מה שאומר שהם מועברים לסקריפטים אחרים ומעובדים בכל דרך.

PowerShell גרסה 2בעל היכולות הבאות, בואו נסתכל על כמה מהם ביתר פירוט:

  • יכולת לייצג פקודות כ-cmdlets- הם מופעלים בתוך המתורגמן; אחרת, הפקודה מבוצעת בתהליך נפרד.
  • שימוש במסועים- מיועדים להעביר נתונים מפקודה אחת לאחרת תוך שמירה על המבנה והסוג שלהם.
  • העברת נתונים משולבת מרובת זרםדרך הרשת עם תעדוף וחידוש חיבור.
  • תמיכה בפרמטרים מיקומיים ובשמות.
  • עבודת רקע- קריאה אסינכרונית של פקודות והשקת סקריפטים במכונות מרוחקות.
  • הגדרת הפעלות מוגבלות עם לקוחות מרוחקיםוהרצת סקריפטים עליהם.
  • מודולים- דרך לארגן סקריפטים כאשר הם הופכים לעצמאיים ומבוצעים במיכל משלהם מבלי להשפיע על סביבת המודול.
  • זמינות של מטפל בשגיאות.
  • סביבה גרפית לשפה: תחביר, באגים, הדגשה, השלמת פקודה אוטומטית עם תמיכה ב-Unicode וסימניות.
  • הוספת נקודות שבירה לקווים, פקודות, פעולות ומשתנים לאיתור באגים בסקריפט.
  • הערות חסימה ובין-לינאריות.
  • תמיכה ביצירת כינויים עבור כמה cmdlets, המומרות לפקודות רגילות בזמן הביצוע.
  • יצירת הפעלות מוגבלות,שבו אתה יכול לבצע רשימה מוגדרת בקפדנות של פקודות ועוד הרבה יותר.

קוד המקור של PowerShell זמין לכולם: כל חבר בקהילה יכול ליצור הרחבות משלו באופן חופשי כדי להגביר את הפונקציונליות של מתורגמן שורת הפקודה.

אתה יכול להתחיל לשלוט בשפת סקריפטים משולבת ללא כישורי תכנות.

לא סביר שתצליח ליצור תרחיש מורכב, אבל כמעט כולם יוכלו לבצע רצפים של פעולות פרימיטיביות.

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

Cmdlets

Cmdlets- פקודות PS מוזרות, שמאחוריהן מסתתרות מגוון פונקציות. הפקודות המובנות במפרש מיושמות על פי עקרון הפועל-שם עצם, למשל, Get-Process (קבלת רשימה של תהליכים). פתרון זה מאפשר לך להבין את מהות הפקודה רק משמה (באנגלית).

חלק מה-cmdlets תומכים בקבלה/העברה של נתונים ומערכים של מידע תוך שמירה על המבנה והסוג שלהם. זה עובד על העיקרון של מסוע (על זה נדון בסעיף הבא). ללא קשר, ה-cmdletים פועלים ומעבדים את האובייקטים לפי הסדר.

כדי ליישם רכיבי cmdlet, ניתן להשתמש בכל ממשקי NET API נתמכים שנוצרו בכל שפת NET.

לפיכך, למשתמש ניתנת גישה לפונקציות ספציפיות של התוכנית.

Cmdlets מסוגלים לקבל גישה למידע הנדרש ישירות או דרך נתיבים ייחודיים (אותיות כונן ונתיבי ספרייה).

באמצעות cmdlets, אתה יכול לעבוד עם אובייקטים של מערכת קבצים ומאגר תעודות, יישומים ושירותים מותקנים.

מַסוֹעַ

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

בשביל זה יש מסוע. כמו ב-UNIX, הוא משלב פקודות על ידי העברת הפלט של cmdlet אחד לקלט של אחר, ללא שינוי, תוך שמירה על הסוג שלו.

במקרה זה, אין צורך בניתוח מיכל או תו אחר תו של מידע.

המידע המועבר עשוי לכלול גם פונקציה.לאחר סיום עבודת הפקודות המשולבות, הפונקציה של המרת מידע לצורת טקסט (המרת נתונים למחרוזות) נקראת באמצעות עיצוב טקסט.

סקריפטים

למרות העובדה שהקליפה מאפשרת לך להפוך פעולות רבות לאוטומטיות, עליך להזין פקודות באופן ידני, וזה לא מאוד נוח.

במיוחד כשיש לבצע את אותן פעולות שוב ושוב.

ואתה לא יכול בלי הגורם האנושי: שגיאות הקלדה, שגיאות, פגיעה בטעות במקשים בעת כתיבת שורות קוד, תיקון או הקלדה חוזרת של שורה דורשת גישה ידידותית יותר למשתמש.

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

סקריפטים ב- PowerShell יפשטו ויהפכו את העבודה על המחשב האישי והתחזוקה שלו עוד יותר, במיוחד אם הסקריפט מכיל ענפים, תנאים, פעולות לוגיות ולופים.

אבל כאן "כל הנוצץ הוא לא זהב": כתיבת תסריט משלך או העלאת תסריט מוכן (אם כי מעט התאמה למטרות שלך) לא יצליחו כל כך בקלות.

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

כדי להפעיל ב-Windows PS, עליך לעבור את בקרת ההשקה שלו.

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

לפני השימוש בסקריפטים

בעת שימוש ב-VBS מתעוררות בעיות רבות, שמפתחי PowerShell נפטרו מהן לחלוטין אם לא מורידים את אבטחת הסקריפט כדי לספק בקשות סקריפט של המשתמש או לפתור בעיות הקשורות לרמת האבטחה של מערכת ההפעלה.

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

הכל קורה בגלל בורות בסיסית של תוכן קובץ הסקריפט (ps1)והרצון לפתור במהירות את הבעיות שלהם על חשבון עבודתם של אחרים. אובייקטים השולטים ברמת האבטחה של ביצוע הסקריפט יוצרים סביבה שבה אי אפשר להפעיל את הסקריפט.

הרצה מכוונת של פקודות מאקרו מתרחשת לאחר שינוי רמת האבטחה, אם המשתמש נותן אישור, מבין מה הוא עושה, ויודע בוודאות מה יש בקובץ *.ps1.

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

כאן אתה יכול להפחית את ההגנה למינימום או לתמרן בחוכמה בין היכולת לפתוח חורים לחדירה ולנוחות העבודה עם PowerShell.

למעטפת שלוש רמות אבטחה:

  • קבצים עם סיומת PS1 אינם מזוהים על ידי המערכתכאפשרי הפעלה ומסומנים כבלתי ידועים או כטקסט (על ידי לחיצה כפולה הם נפתחים בעורך הטקסט המוגדר כברירת מחדל המשמש במחשב);
  • המעטפת מאפשרת לך לבצע סקריפטים לאחר ציון הנתיב המלא שלהם, קבצי סקריפט בספרייה הנוכחית אינם נבדקים, מה שהופך את זה לבלתי אפשרי לבצע פקודות מאקרו הממוקמות בספרייה הנוכחית;
  • הפעלת הסקריפט המובנה של מדיניות הביצוע, אחראי על הוספת המבוקש לרשימת הסקריפטים המותרים.

אל תחשוב אפילו על שינוי התצורה, להוריד אותו לפחות לרמה השנייה, מבלי להכיר את היסודותפגז כוחעד שתתחיל להבין לפחות באופן שטחי את התוכן של *.נ.ב1.

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

  • מוגבל -מותקן כברירת מחדל, רק סקריפטים חתומים על ידי Microsoft מבוצעים, המאפשרים לך לקבל מידע על מעטפת החומרה והתוכנה של המחשב;
  • לאחר שנמחק חתימת קבצים- אתה יכול להפעיל את כל פקודות המאקרו, אך יש לחתום על קבצים שנשלחים בדואר;
  • חתום דיגיטלי על ידי מקור מהימן- כל התסריטים החתומים מבוצעים;
  • ללא הגבלה- הפעל כל פקודות מאקרו;
  • לַעֲקוֹף- מיועדים למתכנתים שיוצרים מערכת אבטחה משלהם, במקום להשתמש בזו המסופקת במעטפת.

אתה יכול לבדוק את המצב הנוכחי של מדיניות הביצוע באמצעות הפקודה "Get-ExecutionPolicy".תהיה מדיניות האבטחה אשר תהיה, המשתמש לא יוכל להריץ סקריפט המכיל פקודות שאין לו מספיק הרשאות לביצוע.

הפעלת PowerShell

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

ישנן מספר דרכים לפתוח חלון PowerShell.

הוא מוצג בשתי צורות:

  • קונסולה קלאסית;

  • פגז כוח ISE - מוסיף תמיכה בטאבים, תחביר, עזרה הקשרית, תפריטי הקשר וראשי, מה שמקל מאוד על העבודה במתורגמן.

הַתחָלָה

הדרך הקלה ביותר להתקשר ל-PS היא דרך Start.

  1. פתח את התפריט(ב-Windows 7, לחץ על "כל התוכניות").
  2. עבור אל ספריית Windows PowerShellולחץ על הסמל הרצוי.

אורז. 4 - הפעל את PS דרך התחל

אתה יכול גם להתקשר ל-PS דרך מערכת חיפוש משולבת.

מתורגמן פיקוד

למי שאוהב שיטות השקה לא סטנדרטיות ומהירה, השתמש בחלון ההפעלה. הוא נפתח עם הכפתור באותו שם ב-Start ושילוב המקשים Win + R.

בתיבת הדו-שיח אנו כותבים "פגז כוח"ולחץ על "Enter".

Win+X

ב-Windows 10, ניתן לקרוא ל-PS מתפריט WinX. העובדה היא כי כברירת מחדל על ידי לחיצה על הפקודה "שורת פקודה"פתח את CMD. ניתן להחליף אותו ב- PowerShell.

פתח את "מאפיינים" של שורת המשימות, בלשונית "ניווט", סמן את הסימון ליד האפשרות היחידה ושמור את ההגדרות.

אתה יכול לקרוא ל-PowerShell דרך שורת הפקודה על ידי כתיבת "powershell" בה או על ידי הפעלת קובץ ההפעלה לאורך הנתיב: %WINDIR%\ System32\ WindowsPowerShell\v1.0 עבור מערכות 32 סיביות וב-%WINDIR%\ syswow64\ WindowsPowerShell\v1.0 עבור Windows 64 סיביות מכל מהדורה.

אורז. 8 - הפעל את PS מהספרייה שבה מאוחסן קובץ ההפעלה שלו

הגדרת מדיניות אבטחה

השאירו קצת- אפשר ל-PowerShell לבצע סקריפטים. הזן את הפקודה "Set-ExecutionPolicy RemoteSigned" והקש "Y".

זה הכל. עכשיו אתה יכול להריץ כל קובץ cmdlet וסקריפטים. בואו ננסה, למשל, להציג רשימה של תהליכים פעילים על ידי ביצוע "Get-Process".

הפעלת סקריפטים

אתה יכול ליצור סקריפטים בכל (עדיף להישאר עם Win, או משהו דומה, עם תמיכת תחביר או אימות) או בתוכנית PowerShell ISE.

האחרון מספק גישה נוחה ל-cmdlets, את היכולת להפעיל, לנפות באגים ולשמור סקריפטים.

נניח שכתבת את הסקריפט הראשון שלך (זה כדי לקבל רשימה של תהליכים רצים), שמרת אותו דרך תפריט "קובץ", ואתה צריך להפעיל אותו. זה נעשה בשלוש דרכים:

1 אנו כותבים את הנתיב המלא לסקריפט ב- PowerShell (או ISE);

אורז. 13 - הפעלת סקריפטים מחלון PowerShell ISE

חָשׁוּבכדי שלא יהיו רווחים בנתיב לקובץ!

פגז כוח– כלי רב עוצמה לפישוט פעולות שגרתיות בשרת 2008 ואילך. יתרון חשוב של PowerShell הוא סקריפטים וזמינות גרסת התוכנית עם ממשק גרפי PS ISE. הפקודות בו מוצגות בצורה של cmdlets, שיאפשרו להכיר את המעטפת ולהבין את המשמעות של כל פקודה. מדיניות האבטחה לא תאפשר למתחילים לפגוע במחשב שלוסקריפטים שהתקבלו ממקורות לא ידועים, ומצב ניפוי הבאגים, יצירת cmdlets משלך, פונקציות ומנגנוני טיפול בשגיאות פותחים אפשרויות בלתי מוגבלות למתכנתים ומנהלי מערכת.

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

  1. הפעל את PowerShellוהפעל את הסקריפט בו (הזן את הנתיב לקובץ ואת שם הקובץ, למשל, כך: C:\Scripts\test.ps1, או עבור לתיקיית הסקריפט עם הפקודה cd C:\Scripts והפעל אותה עם הפקודה.\test.ps1) ניתן למצוא ולהשיק את המעטפת בדרכים רבות. דרך אחת היא דרך תפריט התחל. עבור Windows 7 - עליך לעבור אל "כל התוכניות" - "אביזרים" - "Windows PowerShell" ולהפעיל את מעטפת "Windows PowerShell". עבור Windows 10 - אתה צריך למצוא את הקבוצה עם האות "W" ובתוכה תמצא את "Windows PowerShell".
  2. הפעל את "Windows PowerShell ISE"היא תוכנית - סביבת פיתוח המאפשרת לך לערוך ולאפות באגים של סקריפטים של PowerShell, שזמינה גם היא כברירת מחדל יחד עם PowerShell עצמה. לאחר שהשקת אותו, אתה רק צריך ללחוץ על כפתור "פתח" או לעבור לתפריט קובץ - פתח ולבחור את הסקריפט הרצוי, ואז ללחוץ על F5 או על כפתור "הפעל סקריפט". אתה יכול למצוא את Windows PowerShell ISE באותו מקום כמו מעטפת PowerShell - בתפריט התחל.
  3. הפעל את שורת הפקודה הרגילהוכתוב בו:
    powershell -קובץ<имя_скрипта> (דוגמה: powershell -file myscript.ps1)

אם לא הפעלת סקריפטים של PowerShell בעבר, סביר להניח שתקבל את ההודעה הבאה: לא מצליח להוריד את הקובץ<имя_скрипта>, מכיוון שהפעלת סקריפט אסורה עבור מערכת זו. הקלד "get-help about_signing" למידע נוסף. זאת בשל העובדה שמסיבות אבטחה וכדי למנוע ביצוע בשוגג של קוד זדוני, כל הסקריפטים חייבים להיות חתומים דיגיטלית.

כיצד לאפשר ביצוע של סקריפט PowerShell לא חתום?

1. ב- PowerShell, לפני הפעלת הסקריפט, הפעל את הפקודה כדי לאפשר ביצוע של סקריפטים לא חתומים עבור הפעלת המעטפת הנוכחית:

Set-ExecutionPolicy RemoteSigned - תהליך היקף

2. בעת ההפעלה משורת הפקודה הרגילההשתמש בפרמטר -executionpolicy, כלומר. הרץ את הסקריפט כך:

<имя_скрипта>

שתי השיטות קובעות את המדיניות רק עבור הפגישה הנוכחית, בעוד שמדיניות האבטחה לביצוע סקריפטים של PowerShell שנכתבו ברישום לא תשתנה ותשאר זהה. אם ברצונך לשנות את מדיניות האבטחה של ביצוע סקריפט ל"קבוע", השתמש בשיטה זו:

3. אפשר השקה לנצח: הפעל את PowerShell כמנהל, ולאחר מכן הפעל את הפקודה:

Set-ExecutionPolicy RemoteSigned

הערה:אם הסקריפט הורד מהאינטרנט, אז כדי למנוע בקשה לאשר את ההשקה, עליך להשתמש ב-Bypass במקום ב-RemoteSigned - להשבית לחלוטין את כל הבקשות והאזהרות.

כיצד להפעיל סקריפט PowerShell ברקע?

כדי לעשות זאת, פשוט השתמש בפרמטר ההשקה -WindowStyle, שיכול לקחת את הערכים הבאים: רגיל, ממוזער, מרבי ומוסתר. לפיכך, כדי להפעיל סקריפט לא חתום ברקע, עליך להפעיל את הפקודה:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file<имя_скрипта>

אתה יכול גם להוסיף -NonInteractive אם תרצה, כדי שהתסריט לא ישאל שאלות. לפיכך, הסקריפט יתבצע ללא תשומת לב למשתמש. היזהר בעת שימוש בשיטה זו.

הפעלת סקריפט PowerShell עם פרמטרים

ההשקה בפועל צריכה להיעשות כאילו אתה משיק תוכנית רגילה או קובץ bat עם פרמטרים. לדוגמה, כדי להפעיל סקריפט עם פרמטרים משורת הפקודה, אתה יכול לכתוב את הפקודה הבאה:

powershell -executionpolicy RemoteSigned -קובץ<имя_скрипта>param1 param2 "פרמטר טקסט נוסף"

בסקריפט עצמו אתה יכול לקבל את הפרמטרים האלה כך:

Param ($var1, $var2, $var3) echo $var1, $var2, $var3

ב- PowerShell ISE, אתה יכול להריץ סקריפט עם פרמטרים באותו אופן באמצעות חלונית הפקודות.

כיצד להפעיל סקריפט PowerShell באמצעות קיצור דרך?

משימה זו יכולה להתבצע בשתי דרכים:

  1. צור קובץ bat/cmd שבו תכתוב פקודה להפעלת הסקריפט (קראת את הפרמטרים למעלה)
  2. צור קיצור דרך ל-PowerShell, אותו ניתן למצוא בתיקייה c:\Windows\System32\WindowsPowerShell\v<версия>\ ובמאפייני הקיצור בשדה "אובייקט", הוסף את הפרמטרים הדרושים.

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

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

PowerShell היא שורת פקודה חלופית עם פונקציונליות נרחבת. בעלי מחשבים רבים הבקיאים בתהליכי מערכת מתעניינים באפשרויות השימוש בו ב-Windows 10 ובגרסאות קודמות של תוכנה זו על מנת לשנות לעצמם תהליכים והגדרות מחשב אישי.

אין שום דבר מסובך בשימוש ב- PowerShell. פשוט עקוב אחר כל ההוראות במאמר זה ותצליח.

אם אינך מומחה לנושא זה, אתה רק מתחיל ללמוד שורות פקודה ואת הפעולות שניתן לבצע בהן, זה יהיה שימושי עבורך לדעת את התשובות לשאלות העיקריות על השימוש באפליקציה כזו. לדוגמה, כיצד להפעיל את Windows PowerShell ISE Windows 10 ולכתוב ולעבוד עם סקריפטים.

איך פותחים את PowerShell?

ניתן לעשות זאת בכמה מהדרכים הבאות:

  • - תמצא את היישום ברשימת הרכיבים הכללית תחת האות W.
  • שימוש בחיפוש בשורת המשימות - פתח אותה והזן את המילה PowerShell לחיפוש.
  • באמצעות תפריט "הפעלה", הפעל אותו באמצעות השילוב של Win + R וכתוב את שם השירות, ולאחר מכן הוא יימצא במערכת.
  • ב-Commander, הגדר את פעולת PowerShell - אך עליך לדעת שתעבוד עם האפליקציה דרך שורה שכבר פועלת, ולא בחלון נפרד.
  • בהגדרות Windows, בחר מאפייני שורת המשימות ותפריט התחל. בכרטיסייה "ניווט", סמן את התיבה שליד "החלף את שורת הפקודה ב-PowerShell...". כעת תוכל להפעיל את כלי השירות באמצעות השילוב של Win+X.

איך לכתוב ולהריץ סקריפטים?

כיצד ליצור סקריפט PowerShell ולהפעיל אותו? זה יכול להיעשות פשוט בפנקס רשימות - באמצעות זה, ציין את הפקודות שאתה צריך במסמך החדש. לאחר מכן שמור אותו, אך שנה את הפורמט ל-.ps1 - זו הסיומת שיש לקבצים של כלי מערכת זה.

אתה יכול לכתוב סקריפטים באפליקציה עצמה כך:

  • הפעל אותו.
  • לחץ על הפריט "צור".
  • או לחץ על "קובץ" ובחר "צור" מהרשימה שמופיעה.
  • כתוב את כל הפקודות שצריך לבצע, שמור את הקובץ.

עדיין ניתן לכתוב ולערוך סקריפטים ב-FAR Manager, אך לא ניתן להשתמש בהם ישירות באפליקציה כזו, מכיוון שהיא מציגה קבצים מסוג זה דרך שורת ה-cmd הרגילה. עם זאת, פעולות אחרות מבוצעות באותו אופן כמו בכלי השירות "הילידים".

אתה יכול להריץ את הסקריפט כך:

  1. היכנס ל-PowerShell כמנהל מערכת.
  2. השתמש בפקודות cd כדי לציין את המיקום של הקובץ הדרוש. לדוגמה, e: cd\ cd work .\ שם קובץ. Ps1, או e: \work\filename.ps1
  3. במקרה זה, e: הוא שם הכונן הקשיח שבו נמצא הקובץ.
  4. לחץ אנטר.

התוכנית בהחלט תציג לך הודעה עם הטקסט "לא ניתן לטעון את הקובץ ___ .Ps1 כי ביצוע סקריפט אסור במערכת זו..." כאשר אתה מפעיל את הפקודה בפעם הראשונה. העובדה היא ש-Windows מצוידת בהגנה מפני הפרעות הודות למפתחים, כך שלאף אחד מהמשתמשים אין כברירת מחדל גישה לבצע פעולות כאלה. אך ניתן לעקוף את המגבלה הזו בקלות רבה.

אֵיך? הטקסט שמופיע עם השגיאה ימליץ לך להזין את הפקודה get-help about_signing כדי לקבל מידע נוסף. אתה יכול לעקוב אחר ההוראות האלה, או להשתמש בשילוב Set-ExecutionPolicy עם חתימה מרחוק - לאחר הזנתו, יידרש אישור, וההגבלה תוסר.

שאלות נוספות לגבי השימוש

לאנשים רבים יש שאלה: איך לגלות את הגרסה של PowerShell? כדי לעשות זאת, בצע את הפעולות הבאות:

  1. הזן $PSVersionTable.
  2. אם זה לא מוביל לשום דבר, אז יש לך גרסה 1.0 - יש עבורה פקודת $host.version.
  3. אחרת, מידע מפורט יופיע לגבי גירסת היישום המותקנת במחשב האישי.

1. כתיבת תסריט

סקריפט PowerShell (לא משנה באיזו גרסה) הוא קובץ טקסט עם סיומת *.ps1.

הנה דוגמה של סקריפט Power Shell פשוט (קובץ systemInfo.ps1):

# אחזר אובייקט WMI עבור מערכת ההפעלה

Get-WmiObject Win32_OperatingSystem

ניתן ליצור ולערוך קובץ זה, למשל, ב-FAR Manager.

הערהש-FAR Manager, למרות שהוא יכול לעבוד בקונסולת Power Shell, מבצע סקריפטים מתחתיו בסביבה של קונסולת Windows רגילה cmd . כלומר, ניתן להשתמש ב-FAR Manager רק ליצירה ולעריכה של סקריפטים של PowerShell, אך לא להפעלתם. אבל לפני שאתה מתאכזב, קרא את סעיף 3.

2. הפעלת הסקריפט

יש להפעיל את הסקריפט ממסוף Power Shell, ולא ממסוף Windows הרגיל. במסוף Power Shell, אתה צריך ללכת לספרייה שבה נמצא הסקריפט (עם הפקודות CD ), ולאחר מכן הפעל את הסקריפט עצמו, הקפד לכלול את התווים שלפניו".\" . לדוגמה, יש לנו את הנתיב לקובץ הסקריפט d:\work\systemInfo.ps1 . ואז פקודות ההשקה ייראו כך:

CD\

עבודת תקליטורים

.\systemInfo.ps1

או כמו זה (פשוט ציין את הנתיב המלא לסקריפט):

d:\work\systemInfo.ps1

ככל הנראה, השגיאה הבאה תופיע בעת הפעלת הסקריפט:

לא ניתן לטעון את הקובץ D:\work\systemInfo.ps1 מכיוון שהפעלת סקריפט אינה מותרת במערכת זו. הקלד "get-help about_signing" למידע נוסף.

שורה:1 תו: 18

CategoryInfo: NotSpecified: (:), PSSecurityException

FullyQualifiedErrorId: RuntimeException

השגיאה מופיעה מכיוון שכברירת מחדל ל-Power Shell מופעלת מדיניות האבטחה המקסימלית, המאפשרת לך להריץ פקודות PowerShell בשורת הפקודה, אך אינה מאפשרת לך להריץ סקריפט עם פקודות PowerShell באותה שורת פקודה.

כדי לאפשר ביצוע של סקריפטים של PowerShell, עליך ליצור קובץ *.bat, למשל enableScript.bat עם התוכן הבא:

powershell -Command Set-ExecutionPolicy RemoteSigned

ניתן להפעיל את קובץ *.bat בכל קונסולה: ב-PowerShell או בקונסולה רגילה cmd . לאחר ביצוע קובץ זה, סקריפטים של PowerShell יפעלו במסוף PowerShell.

3. הפעלת סקריפט PowerShell ממסוף cmd רגיל של Windows

ניתן להפעיל את סקריפט PowerShell גם ממסוף Windows רגיל. כדי לעשות זאת אתה יכול להשתמש בפקודה:

Powershell -קובץ ./systemInfo.ps1

כך תוכלו לבצע סקריפטים ישירות מ-FAR Manager והם יעבדו.

אבל יש כאן עדינות קלה. פָּרָמֶטֶר-קוֹבֶץ יורה רק בשבילים מקומיים, גם אם השביל הוא יחסי"./" . כלומר, אם *.ps1 - הקובץ נמצא בדיסק המקומי C: או D: , אז שיחה כזו תעבוד. אבל אם תנסה להפעיל סקריפט הממוקם על משאב דומיין, הסקריפט לא יימצא. אולי זה יתוקן בגרסאות עתידיות של PowerShell.