ค้นหาเว็บไซต์

การอัปเดตเวอร์ชัน 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 และ cmdlets เก่าของคุณใน 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) เว้นแต่คุณจะต้องการความเข้ากันได้พิเศษกับสคริปต์รุ่นเก่า

มีหลายวิธีในการอัปเกรด (ติดตั้ง) รุ่น PowerShell Core บน Windows 10 และ 11:

  • ใช้ตัวติดตั้ง PowerShell Core MSI ซึ่งมีให้ดาวน์โหลดจาก GitHub

  • การใช้ WinGet ตัวจัดการแพ็คเกจ Windows 10/11 ในตัว

  • การใช้ Microsoft Store

ต่อไป โดยใช้ตัวอย่างการอัปเดต PowerShell Core เป็น 7.3 บน Windows 10 22H2 เราจะดูวิธีการเหล่านี้ทั้งหมด

การอัปเกรด PowerShell Core โดยใช้การติดตั้ง 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 ให้กับ Path Environment Variable

  • ลงทะเบียน Windows Event Logging Manifest (มีการสร้างบันทึก Event Viewer แยกต่างหากสำหรับเหตุการณ์ 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/สคริปต์ในโหมดเงียบ คุณสามารถใช้คำสั่งที่มีพารามิเตอร์ต่อไปนี้:

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 Package Manager เพื่อติดตั้งหรืออัปเดต 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
  • PowerShell Core 6.x:

    $env:ProgramFiles\PowerShell\6
  • PowerShell Core 7.x:

    $env:ProgramFiles\PowerShell\7

หากติดตั้ง PowerShell 6.x บนคอมพิวเตอร์ของคุณ ไฟล์

$env:ProgramFiles\PowerShell\6

ไดเร็กทอรีจะถูกลบโดยอัตโนมัติเมื่อคุณติดตั้ง PowerShell 7.3

โปรดทราบว่าชื่อของไฟล์ปฏิบัติการ PowerShell มีการเปลี่ยนแปลง ใน PowerShell Core คือ c:\Program Files\PowerShell \pwsh.exe มีไอคอนของตัวเองในเมนูเริ่ม

  • ในการรัน Windows PowerShell ที่ใช้ .NET Framework

    powershell.exe

    ใช้คำสั่ง

  • หากต้องการเรียกใช้ PowerShell Core ที่ใช้ .NET Core ให้ใช้ไฟล์

    pwsh.exe

ซึ่งหมายความว่าคุณมีทั้ง Windows PowerShell 5.1 และ PowerShell Core 7.3 ติดตั้งอยู่ในคอมพิวเตอร์ของคุณ

หากต้องการค้นหาเวอร์ชันและรุ่นของ 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 ด้วยตนเองใน Store หรือใช้ลิงก์นี้

คุณยังสามารถใช้ WinGet เพื่อติดตั้ง PowerShell เวอร์ชัน Store:

winget search powershell --source msstore
winget install --id 9MZ1SNWT0N5D

ข้อดีของการติดตั้ง PowerShell Core จาก Microsoft Store คือ App Store จะตรวจสอบเวอร์ชันของ PowerShell ที่ติดตั้งโดยอัตโนมัติ และติดตั้งการอัปเดตโดยอัตโนมัติเมื่อพร้อมใช้งาน

ในการตรวจสอบว่าคุณได้ติดตั้ง PowerShell Core เวอร์ชัน Store แล้ว ให้ใช้คำสั่ง:

Get-AppPackage Microsoft.PowerShell

แพคเกจ Microsoft.PowerShell_7.3.3.0_x64__8wekyb3d8bbwe ถูกติดตั้งในตัวอย่างนี้

อย่างไรก็ตาม ยังมีข้อเสียตรงที่อินสแตนซ์ของ PowerShell ดังกล่าวจะทำงานในสภาพแวดล้อมแบบแซนด์บ็อกซ์

คุณสามารถดาวน์โหลดไฟล์แอปพลิเคชัน APPX/MSIX และติดตั้งโดยใช้ไฟล์

Add-AppxPackage

cmdlet (หรือตามที่อธิบายไว้ในบทความ “การซ่อมแซม Microsoft Store”)

การติดตั้ง/อัปเดต PowerShell Core บนคอมพิวเตอร์ระยะไกล

พิจารณาสองสถานการณ์ในการติดตั้งหรืออัปเดต PowerShell Core บนคอมพิวเตอร์ระยะไกลหลายเครื่อง

การปรับใช้ PowerShell Core กับนโยบายกลุ่ม

คุณสามารถใช้นโยบายกลุ่มเพื่อปรับใช้และอัปเดต PowerShell Core จากส่วนกลางในโดเมน Active Directory ใช้คุณลักษณะของ GPO เพื่อปรับใช้แพ็คเกจ MSI กับคอมพิวเตอร์โดเมน

  1. ดาวน์โหลดไฟล์การติดตั้ง PowerShell MSI และคัดลอกไปยังไดเร็กทอรี SYSVOL บนตัวควบคุมโดเมน

  2. เปิดคอนโซลการจัดการนโยบายกลุ่มโดเมน (

    gpmc.msc

    ) สร้าง GPO ใหม่และเชื่อมโยงกับ OU กับคอมพิวเตอร์และเซิร์ฟเวอร์

  3. ไปที่ส่วน GPO การกำหนดค่าคอมพิวเตอร์ -> การตั้งค่าซอฟต์แวร์ สร้างแพ็คเกจใหม่ และระบุเส้นทางไปยังไฟล์การติดตั้ง PowerShell MSI ในโฟลเดอร์ SYSVOL ในโดเมน (ใช้ เส้นทาง UNC);

    หากต้องการกำหนดเป้าหมายนโยบายไปยังอุปกรณ์โดเมนได้แม่นยำยิ่งขึ้น คุณสามารถใช้ตัวกรอง GPO WMI

  4. หากต้องการอัปเดตการตั้งค่านโยบายกลุ่มสำหรับการติดตั้งซอฟต์แวร์ คุณต้องรีสตาร์ทคอมพิวเตอร์ 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}
  • สคริปต์ต่อไปนี้จะเลือกคอมพิวเตอร์ที่เปิดใช้งานทั้งหมดที่ใช้ 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 บนคอมพิวเตอร์เพื่อใช้ GetADComputer cmdlet

ระมัดระวังเมื่อใช้คำสั่ง PowerShell Remoting เมื่อเชื่อมต่อกับคอมพิวเตอร์ระยะไกล (ด้วยไฟล์

Enter-PSSession

และ

Invoke-Command

ซม.) หากคุณต้องการเชื่อมต่อกับปลายทาง PowerShell 7 คุณต้องใช้คำสั่ง:

Enter-PSSession -ComputerName dc01 -ConfigurationName "powershell.7"

มิฉะนั้น คุณจะเชื่อมต่อกับจุดสิ้นสุด PowerShell Remoting 5.1

วิธีทั่วไปในการอัปเดต PowerShell Core บน Linux distros คือการใช้ตัวจัดการแพ็คเกจแบบเนทีฟ

การอัปเดต 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

    สำคัญ)

  • ช่องทำเครื่องหมายที่สองจะช่วยให้คุณได้รับการอัปเดตสำหรับซอฟต์แวร์ทั้งหมดของ Microsoft ไม่ใช่เฉพาะ Windows หากปิดใช้งานตัวเลือกนี้ คุณจะไม่ได้รับการอัปเดต PowerShell จาก Microsoft Update แต่สามารถรับได้จาก WSUS/SCCM ของคุณ (พารามิเตอร์รีจิสทรี registeredwithAU=1 ภายใต้

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\7971F918-A847-4430-9279-4A52D1EFE18D

    )

ตรวจสอบว่าตัวเลือก รับการอัปเดตสำหรับผลิตภัณฑ์อื่นๆ ของ Microsoft เมื่อคุณอัปเดต Windows เปิดใช้งานอยู่ในการตั้งค่า -> การอัปเดตและความปลอดภัย -> Windows Update -> ตัวเลือกขั้นสูง

ผู้ดูแลระบบสามารถกำหนดค่าการติดตั้งการอัปเดต ตัวเลือกผ่านการตั้งค่า Group Policy

ตอนนี้ เมื่อคุณคลิกปุ่ม ตรวจหาการอัปเดต หรือเรียกใช้การสแกนการอัปเดตผ่านโมดูล PSWindowsUpdate คุณจะได้รับการอัปเดตสำหรับ PowerShell Core

บทความที่เกี่ยวข้อง