עדכון גירסת PowerShell ב- Windows
מאמר זה מתאר כיצד לעדכן את Windows PowerShell לגירסה העדכנית ביותר 5.1 וכיצד להתקין (לשדרג) PowerShell Core 7.3. קיימים כעת שני ענפים של PowerShell:
Windows PowerShell הקלאסי (הגירסה המקסימלית היא 5.1, שאינה מפותחת עוד.);
פלטפורמת PowerShell Core החדשה (גירסה 7.3 זמינה כעת).
למרות שמספור גירסת PowerShell ממשיך מ- 5.1 (6.0, 6.1, 7.0, 7.1 וכן הלאה), מדובר בשתי פלטפורמות שונות. לכן, עדכון Windows PowerShell ו- PowerShell Core יכוסה בנפרד.
PowerShell Core 7.x הוא הגירסה התואמת ביותר ל- Windows PowerShell הקלאסי. משמעות הדבר היא שתוכל להפעיל בקלות את קבצי הסקריפט הישנים שלך ב- PS1 וברכיבי cmdlet ב- PowerShell Core.
שדרוג ל- Windows PowerShell 5.1
Windows PowerShell 5.1 כבר מותקן כברירת מחדל בכל הגירסאות, החל מ- Windows 10 ו- Windows Server 2016.
עליך לשדרג באופן ידני ל- PowerShell 5.1 עבור גירסאות קודמות (Windows 7/8.1 ו- Windows 2008 R2/2012). לדוגמה, Windows Server 2012 R2 (Windows 8.1) יש PowerShell 4.0 מותקן.
בוא ננסה לשדרג את גירסת Windows PowerShell ל- 5.1 ב- Windows Server 2012 R2.
ראשית, בדוק את גירסת PowerShell הנוכחית (צילום המסך מראה שזה PowerShell 4.0):
$PSVersionTable.PSVersionכדי לשדרג את גירסת PowerShell שלך ל- 5.1, התקן את Windows Management Framework 5.1, המחייב את .NET Framework 4.5.2 (ואילך). ודא ש- .NET 4.5.2 ואילך מותקן באמצעות פקודה זו:
(Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’ -Name Release).Releaseבמקרה שלי, גרסת השחרור
378675פירושו ש- .NET Framework גירסה 4.5.1 מותקן. אז, אני צריך להוריד ולהתקין את האחרון .NET Framework 4.8 (הנה הקישור למתקין במצב לא מקוון: https://go.microsoft.com/fwlink/?linkid=2088631 —
ndp48-x86-x64-allos-enu.exe).
התקן את חבילת .NET 4.8 (יהיה עליך להפעיל מחדש את המחשב):
אם תתקין WMF 5.1 ללא .NET 4.5.2, תכונות PowerShell מסוימות לא יהיו זמינות.
הורד WMF 5.1 עבור Windows Server 2012 R2 —
Win8.1AndW2K12R2-KB3191564-x64.msu(https://go.microsoft.com/fwlink/?linkid=839516).
התקן את Windows Management Framework 5.1 מקובץ MSU.
לאחר הפעלה מחדש של השרת, פתח את מסוף powershell.exe וודא שגירסת PowerShell עודכנה ל- 5.1.
אם יש לך Windows 7 או Windows Server 2008 R2 שאינם נתמכים, באפשרותך לשדרג את גירסת PowerShell מ- 2.0 ל- 5.1 באותו אופן. תחילה, התקן את .Net Framework 4.5.2 (או גירסה חדשה יותר) ולאחר מכן WMF 5.1 (קישורי ההורדה יהיו שונים מאלה עבור Windows Server 2012 R2).
כיצד להתקין או לעדכן PowerShell Core 7?
PowerShell Core הוא חוצה פלטפורמות ונמצא בפיתוח פעיל (בניגוד ל- Windows PowerShell 5.1). למעשה, PowerShell Core היא פלטפורמה חדשה המותקנת על מערכת ההפעלה לצד Windows PowerShell הקלאסי. משמעות הדבר היא שאין באפשרותך לשדרג מ- PowerShell 5.1 ל- PowerShell Core 7.3. PowerShell 7.x מותקן במחשב שלך בנפרד מ- Windows PowerShell 5.1 (זה לצד זה).
PowerShell Core 6.x ו- 7.x זמינים בשלב זה. מומלץ להתקין תמיד את הגירסה העדכנית ביותר של PowerShell (כרגע 7.3), אלא אם כן אתה זקוק לתאימות מיוחדת עם קבצי script מדור קודם.
קיימות מספר דרכים לשדרג (להתקין) את גירסת PowerShell Core ב- Windows 10 ו- 11:
השתמש במתקין PowerShell Core MSI, הזמין להורדה מ- GitHub;
באמצעות מנהל החבילות המובנה של Windows 10/11 WinGet;
באמצעות Microsoft Store.
לאחר מכן, באמצעות הדוגמה של עדכון PowerShell Core ל 7.3 ב- Windows 10 22H2, נבחן את כל השיטות הללו.
שדרוג ליבת PowerShell באמצעות התקנת MSI
אם ברצונך להתקין את PowerShell Core באמצעות חבילת MSI, עבור אל דף הפרויקט https://github.com/PowerShell/PowerShell והורד את חבילת ההתקנה עבור גירסת מערכת ההפעלה שלך. בזמן כתיבת שורות אלה, הגרסה האחרונה של PowerShell היא v7.3.3, מתאריך 24 בפברואר 2023 (לדוגמה,
PowerShell-7.3.3-win-x64.msiאו
PowerShell-7.3.3-win-x86.msi). השתמש רק במהדורות יציבות או LTS עבור סביבת ייצור.
הורד את קובץ MSI והתקן אותו.
אפשרויות ההתקנה הבאות זמינות:
הוספת PowerShell למשתנה סביבת נתיב
רשום את מניפסט רישום האירועים של Windows (נוצר יומן רישום אירועים נפרד עבור אירועי PowerShell.
%SystemRoot%\System32\Winevt\Logs\PowerShellCore%4Operational.evtx)
הפוך את PowerShell Remoting לזמין (מאפשר וקובע את תצורת WinRM עבור PowerShell Remoting)
הוסף את תפריט ההקשר 'פתח כאן' ל- Explorer
הוסף תפריט תלוי הקשר 'הפעל עם PowerShell 7' עבור קבצי PowerShell
לאחר מכן, באפשרותך להפעיל עדכונים אוטומטיים של PowerShell Core באמצעות Windows Update/WSUS (ראה להלן).
כדי להתקין את PowerShell Core מחבילת MSI באמצעות SCCM/MDT/scripts במצב שקט, באפשרותך להשתמש בפקודה עם הפרמטרים הבאים:
- ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL
- ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL
- ENABLE_PSREMOTING
- REGISTER_MANIFEST
- ADD_PATH
- DISABLE_TELEMETRY
- USE_MU
- השתמש ב- Microsoft Update כדי לקבל עדכוני PSCore
- ENABLE_MU
- אפשר עדכון של PowerShell Core באמצעות Windows Update
לדוגמה, הפקודה עבור התקנה שקטה עשויה להיראות בערך כך:
msiexec.exe /package PowerShell-7.3.3-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 ADD_PATH=1 ENABLE_MU=1 ADD_PATH=1באפשרותך לשדרג את PowerShell ישירות מהקונסולה. כדי להתקין או לשדרג לגירסה העדכנית ביותר של PowerShell Core, הפעל את הפקודה הבאה:
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"פקודה זו מורידה את קובץ PowerShell 7.3 MSI מ- GitHub ולאחר מכן מתחילה את ההתקנה באמצעות מתקין MSI.
לאחר השלמת ההתקנה, מופיע חלון PowerShell Core (pwsh.exe). בדוק את גירסת PowerShell כדי לוודא שהיא מעודכנת ל- PoSh 7.3.3.
שימוש במנהל החבילות WinGet כדי להתקין או לעדכן את PowerShell Core
אם מנהל החבילות WinGet מותקן במחשב שלך, באפשרותך להתקין או לעדכן את גירסת PowerShell שברשותך לפקודה העדכנית ביותר:
winget install --id Microsoft.Powershell --source wingetלחלופין, באפשרותך להתקין גירסה ספציפית של PowerShell Core:
winget install --id=Microsoft.PowerShell -v "7.1.2" -eאם מנהל החבילות Chocolatey מותקן, השתמש בפקודות (עבור 5.1):
choco install powershell -y
choco upgrade powershell -yאו עבור PowerShell 7.x:
choco install pwsh -y
choco install pwsh -yשים לב לספריות ברירת המחדל עבור גירסאות שונות של PowerShell:
Windows PowerShell 5.1:
$env:WINDIR\System32\WindowsPowerShell\v1.0פאוורשל קור 6.x:
$env:ProgramFiles\PowerShell\6פאוורשל קור 7.x:
$env:ProgramFiles\PowerShell\7
אם PowerShell 6.x הותקן במחשב שלך, הסמל
$env:ProgramFiles\PowerShell\6ספריה מוסרת באופן אוטומטי בעת התקנת PowerShell 7.3.
שים לב ששם קובץ ההפעלה של PowerShell השתנה. ב- PowerShell Core, הוא c:\Program Files\PowerShell\7\pwsh.exe. יש לו סמל משלו בתפריט התחלה.
כדי להפעיל את Windows PowerShell המבוסס על .NET Framework,
powershell.exeנעשה שימוש בפקודה
כדי להפעיל את PowerShell Core מבוסס .NET Core, השתמש בלחצן
pwsh.exe
משמעות הדבר היא שגם Windows PowerShell 5.1 וגם PowerShell Core 7.3 מותקנים במחשב שלך.
כדי למצוא את הגירסה וגירסת ה- build של PowerShell המותקנות במכשיר שלך, באפשרותך לבדוק את גירסת הקובץ pwsh.exe:
(Get-Command 'C:\Program Files\PowerShell\7\pwsh.exe').Versionכך תוכל לבדוק את גירסת הקובץ במחשב מרוחק:
Invoke-Command -Computername computer1 -Scriptblock {(Get-Command 'C:\Program Files\PowerShell\7\pwsh.exe').Version}Windows PowerShell מספק מצב תאימות לאחור מיוחד המאפשר לך להפעיל גירסה ישנה יותר של PowerShell גם אם מותקנות אצלך גירסאות חדשות יותר. באפשרותך להשתמש בפקודה הבאה כדי להפעיל גירסה ספציפית של PowerShell לדוגמה, 4.0):
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Version 4התקנת PowerShell Core ב- Windows 10 ו- 11 דרך Microsoft Store
ב- Windows 10 ו- 11, באפשרותך להתקין או לעדכן את PowerShell דרך Microsoft Store. באפשרותך למצוא באופן ידני את יישום PowerShell בחנות או להשתמש בקישור זה.
באפשרותך גם להשתמש ב- WinGet כדי להתקין את גירסת החנות של PowerShell:
winget search powershell --source msstore
winget install --id 9MZ1SNWT0N5Dהיתרון של התקנת PowerShell Core מ- Microsoft Store הוא שה- App Store בודק באופן אוטומטי את הגירסה המותקנת של PowerShell ומתקין עדכונים באופן אוטומטי כאשר הם הופכים לזמינים.
כדי לוודא שהתקנת את גירסת החנות של PowerShell Core, השתמש בפקודה:
Get-AppPackage Microsoft.PowerShellהחבילה Microsoft.PowerShell_7.3.3.0_x64__8wekyb3d8bbwe מותקנת בדוגמה זו.
עם זאת, ישנם גם חסרונות לעובדה כי מופע כזה של PowerShell יהיה פועל בסביבת ארגז חול.
באפשרותך להוריד את קובץ היישום APPX/MSIX ולהתקין אותו באמצעות
Add-AppxPackagecmdlet (או כמתואר במאמר "תיקון Microsoft Store ").
התקנה/עדכון של PowerShell Core במחשבים מרוחקים
שקול שני תרחישים להתקנה או עדכון של PowerShell Core במחשבים מרוחקים מרובים.
פריסת PowerShell Core עם מדיניות קבוצתית
באפשרותך להשתמש במדיניות קבוצתית כדי לפרוס ולעדכן באופן מרכזי את PowerShell Core בתחום Active Directory. השתמש בתכונות של GPO כדי לפרוס חבילות MSI במחשבי תחום.
הורד את קובץ ההתקנה של PowerShell MSI והעתק אותו לספריית SYSVOL בבקר התחום;
פתח את מסוף ניהול המדיניות הקבוצתית של התחום (
gpmc.msc), ליצור GPO חדש ולקשר אותו OU עם מחשבים ושרתים;
עבור אל הקטע GPO תצורת מחשב -> הגדרות תוכנה, צור חבילה חדשה וציין את הנתיב לקובץ ההתקנה PowerShell MSI בתיקייה SYSVOL בתחום (השתמש בנתיב UNC);
כדי למקד בצורה מדויקת יותר את המדיניות שלך להתקני תחום, באפשרותך להשתמש במסנני GPO WMI.
כדי לעדכן את הגדרות המדיניות הקבוצתית עבור התקנת התוכנה, עליך להפעיל מחדש את המחשבים. הגירסה החדשה של PowerShell תותקן בכל המחשבים בעת האתחול.
כיצד לעדכן את PowerShell במחשב מרוחק משורת הפקודה?
באפשרותך להשתמש בשורת הפקודה כדי לעדכן את PowerShell במחשב מרוחק.
השיטה הראשונה משתמשת במתקין MSI בתיקיית רשת משותפת כדי לעדכן מרחוק את PowerShell במחשב:
Invoke-Command -ComputerName mun-srv01 -ScriptBlock {Start-Process msiexec.exe -ArgumentList '/package "\\mun-fs01\install\PowerShell-7.3.3-win-x64.msi" /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1' -Wait}
קובץ ה- Script הבא בוחר את כל המחשבים הזמינים שבהם פועל Windows 10 מתחום Active Directory ומתחיל להוריד ולהתקין את PowerShell Core בכל אחד מהם:
$ADComputers = Get-ADComputer -Filter 'operatingsystem -like "*Windows 10*" -and enabled -eq "true"' ForEach ($computer in $ADcomputers) { Invoke-Command -ComputerName $computer {iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"} }עליך להתקין את מודול Active Directory PowerShell במחשב כדי להשתמש ב- cmdlet GetADComputer.
היזהר בעת שימוש בפקודות PowerShell Remoting בעת התחברות למחשבים מרוחקים (עם
Enter-PSSessionו
Invoke-Commandרכיבי cmdlet). אם עליך להתחבר לנקודת קצה של PowerShell 7, עליך להשתמש בפקודה:
Enter-PSSession -ComputerName dc01 -ConfigurationName "powershell.7"אחרת, תתחבר לנקודת הקצה PowerShell Remoting 5.1.
הדרך הנפוצה ביותר לעדכן את PowerShell Core בהפצות לינוקס היא להשתמש במנהל החבילות המקורי.
עדכון PowerShell באמצעות Windows Update או WSUS
לפני PowerShell Core 7.2, pwsh.exe לא עודכן באופן אוטומטי. הייתה רק הודעה במסוף לאחר שחרורה של גרסה חדשה:
A new PowerShell stable release is available. Upgrade now, or check out the release page at: https://aka.ms/PowerShell-Release?tag=v7.1.3החל מגירסה 7.2, PowerShell Core תומך בעדכונים אוטומטיים באמצעות Windows Update (Microsoft Update, Windows Update for Business, שרת WSUS פנימי או SCCM). לשם כך, עליך להפעיל את האפשרויות המתאימות במהלך ההתקנה של חבילת MSI.
הראשון מאפשר PowerShell לעדכן באופן אוטומטי באמצעות כל ערוץ זמין (מאפשר את פרמטר הרישום UseMU =1 ב
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShellCoreמפתח)
תיבת הסימון השנייה תאפשר לך לקבל עדכונים עבור כל התוכנות של מיקרוסופט, לא רק Windows. אם אפשרות זו אינה זמינה, לא תקבל עדכוני PowerShell מ- Microsoft Update, אך תוכל לקבל אותם מ- WSUS/SCCM שלך (פרמטר הרישום registeredwithAU=1 תחת
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\7971F918-A847-4430-9279-4A52D1EFE18D)
ודא שהאפשרות קבל עדכונים עבור מוצרים אחרים של Microsoft בעת עדכון Windows זמינה כעת תחת הגדרות -> עדכון ואבטחה -> Windows Update -> אפשרויות מתקדמות.
מנהל מערכת יכול לקבוע את תצורת אפשרויות התקנת העדכון באמצעות הגדרות מדיניות קבוצתית.
כעת, כאשר תלחץ על לחצן בדוק אם קיימים עדכונים או הפעל סריקת עדכונים באמצעות מודול PSWindowsUpdate, תקבל גם עדכונים עבור PowerShell Core.




















