Cập nhật phiên bản PowerShell trên Windows

0
54
github - get latest powershell core release

Trong bài viết này, chúng tôi sẽ hướng dẫn cách cập nhật phiên bản Windows PowerShell của bạn lên phiên bản 5.1 mới nhất và cài đặt (nâng cấp lên) PowerShell Core 7.1. Trong bài viết trước, chúng tôi đã nói rằng hiện tại có hai phiên bản PowerShell: Windows PowerShell cổ điển (phiên bản mới nhất là 5.1 và nó không còn được phát triển) và nền tảng PowerShell Core mới (hiện đã có phiên bản 7.1). Mặc dù đánh số phiên bản PowerShell từ 5.1 (6.0, 6.1, 7.0, 7.1, v.v.), đây là hai nền tảng khác nhau. Vì vậy, chúng tôi sẽ hướng dẫn cách cập nhật cả Windows PowerShell và PowerShell Core.

Nội dung:
  • Nâng cấp lên Windows PowerShell 5.1
  • Cách cài đặt hoặc cập nhật lên PowerShell Core 7?
  • Cài đặt PowerShell Core qua Microsoft Store
  • Triển khai PowerShell Core với Chính sách nhóm
  • Cập nhật PowerShell từ xa

Nâng cấp lên Windows PowerShell 5.1

PowerShell 4.0 được cài đặt theo mặc định trên Windows Server 2012 R2 (Windows 8.1). Hãy thử cập nhật phiên bản Windows PowerShell lên 5.1 trên Windows Server 2012 R2.

Trước hết, hãy kiểm tra phiên bản PowerShell hiện tại (ảnh chụp màn hình cho thấy PowerShell 4.0 đã được cài đặt):

$PSVersionTable.PSVersion

PSVersionTable.PSVersion check powershell version

Để nâng cấp phiên bản PowerShell của bạn lên 5.1, hãy cài đặt Windows Management Framework 5.1 , yêu cầu .NET Framework 4.5.2 (hoặc mới hơn). Đảm bảo rằng .NET 4.5.2 trở lên được cài đặt bằng lệnh này:

(Get-ItemProperty ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv4Full’ -Name Release).Release

get .net framework version on windows

Trong trường hợp của tôi, phiên bản phát hành 378675 có nghĩa là .NET Framework phiên bản 4.5.1 đã được cài đặt. Vì vậy, tôi phải tải xuống và cài đặt .NET Framework 4.8 mới nhất (đây là liên kết đến trình cài đặt ngoại tuyến: https://go.microsoft.com/fwlink/?linkid=2088631 – ndp48-x86-x64-allos-enu.exe ).

Cài đặt .NET 4.8 (bạn sẽ phải khởi động lại máy tính của mình):

installing net framework 4.8 on windows server 2012 r2

Nếu bạn cài đặt WMF 5.1 mà không có .NET 4.5.2, một số tính năng PowerShell sẽ không khả dụng.

Tải xuống WMF 5.1 dành cho Windows Server 2012 R2 – Win8.1AndW2K12R2-KB3191564-x64.msu (https://go.microsoft.com/fwlink/?linkid=839516).

Cài đặt tệp MSU Windows Management Framework 5.1.

install Windows Management Framework 5.1

Sau khi máy chủ khởi động lại, hãy mở bảng điều khiển PS và đảm bảo rằng phiên bản PowerShell đã được cập nhật lên 5.1.

update to windows powershell 5.1

Nếu bạn có Windows 7 hoặc Windows Server 2008 R2 không được hỗ trợ, bạn có thể nâng cấp phiên bản PowerShell từ 2.0 lên 5.1 theo cách tương tự. Trước tiên, hãy cài đặt .Net Framework 4.5.2 (hoặc mới hơn), sau đó là WMF 5.1 (liên kết tải xuống sẽ khác với liên kết dành cho Windows Server 2012 R2).

Cách cài đặt hoặc cập nhật lên PowerShell Core 7?

Lưu ý rằng phiên bản Windows PowerShell mới nhất được cài đặt trong Windows 10 và Windows Server 2019 là PowerShell 5.1. Thay vào đó, Microsoft bắt đầu phát triển phiên bản PowerShell Core đa nền tảng. Hiện tại, PowerShell Core 6.0, 6.1, 6.2, 7.0 và 7.1 đã có sẵn. PowerShell Core về cơ bản là một nền tảng mới được cài đặt trên máy tính cùng với Windows PowerShell. Có nghĩa là bạn không thể nâng cấp PowerShell 5.1 lên PowerShell Core 7.1. PowerShell 7 được cài đặt trên máy tính riêng biệt với Windows PowerShell 5.1.

Trong PowerShell 7.1, các nhà phát triển đã thêm khả năng tương thích tối đa với Windows PowerShell. Vì vậy, bạn có thể dễ dàng chạy các tập lệnh và lệnh ghép ngắn PS1 cũ của mình trong PowerShell Core.

Nếu bạn đã cài đặt PowerShell Core 6.0, bạn có thể cập nhật phiên bản PowerShell trên máy tính của mình lên PowerShell 7.1 Core mới nhất (hoặc bạn có thể cài đặt PowerShell Core 7.1 cùng với Windows PowerShell 5.1). Trong ví dụ này, chúng tôi sẽ cố gắng cập nhật PowerShell Core trong Windows 10 20H2. Có hai cách để nâng cấp:

  • Bạn có thể tải xuống trình cài đặt PowerShell Core MSI theo cách thủ công từ GitHub;
  • Bạn có thể tải xuống và cài đặt (cập nhật) nó trực tiếp từ bảng điều khiển PowerShell.
Các bản phát hành mới nhất của PowerShell Core có thể được cài đặt trên tất cả các phiên bản Windows bắt đầu từ Windows 7 SP1, Server 2008 R2 và mới hơn.

Nếu bạn muốn cài đặt PowerShell Core bằng gói MSI, hãy truy cập trang dự án https://github.com/PowerShell/PowerShell, tìm bản phát hành ổn định mới nhất. Tại thời điểm viết bài này, đây là bản phát hành PowerShell v7.1.3 vào ngày 4 tháng 3 năm 2021. Bản phát hành xem trước cao hơn của PowerShell v7.2.0 cũng có sẵn, nhưng bạn nên đợi phiên bản ổn định hơn. Mở rộng danh sách Nội dung và tìm một gói cho phiên bản Windows của bạn ( PowerShell-7.1.3-win-x64.msi hoặc PowerShell-7.1.3-win-x86.msi ).

github - get latest powershell core release

 

Tải xuống tệp MSI và cài đặt nó.

install powershell core on windows

Để cài đặt PowerShell Core từ gói MSI sử dụng SCCM / MDT / scripts ở chế độ yên tĩnh, bạn có thể sử dụng lệnh với các tham số sau:

msiexec.exe /package PowerShell-7.1.0-win-x86.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1

Bạn có thể cập nhật PowerShell ngay từ cli PS.

Hãy cập nhật (cài đặt) phiên bản PowerShell Core mới nhất bằng lệnh:

iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"

Lệnh này tải xuống tệp phân phối PowerShell 7.1 MSI từ GitHub và sau đó bắt đầu cài đặt thông qua trình cài đặt MSI.

Bạn cũng có thể sử dụng các thông số cài đặt khác:

  • -Destination – thay đổi thư mục cài đặt PowerShell Core mặc định
  • -Preview – cài đặt phiên bản mới nhất Preview PowerShell
  • -Quiet – một chế độ cài đặt yên tĩnh
  • -AddToPath – thêm đường dẫn đến thư mục cài đặt PowerShell Core đến các biến môi trường

upgrade powershell core 7.1 from command line

Sau khi cài đặt xong, cửa sổ PowerShell Core (pwsh.exe) xuất hiện. Kiểm tra phiên bản PowerShell tại đây để đảm bảo rằng đó là PoSh 7.1.3.

poweshell core 7.1 on windows 10 - pwsh.exe

Nếu bạn đã cài đặt trình quản lý gói WinGet, bạn có thể cài đặt hoặc cập nhật phiên bản PowerShell của mình lên lệnh mới nhất:

winget install --id=Microsoft.PowerShell -e

Hoặc, bạn có thể cài đặt một phiên bản PowerShell Core cụ thể:

winget install --id=Microsoft.PowerShell -v "7.1.2" -e

Nếu bạn đã cài đặt trình quản lý gói Chocolatey, hãy sử dụng các lệnh:

choco install powershell -y
choco upgrade powershell -y

Hãy chú ý đến các thư mục của các phiên bản PowerShell khác nhau:

  • Windows PowerShell 5.1: $env:WINDIRSystem32WindowsPowerShellv1.0
  • PowerShell Core 6.x: $env:ProgramFilesPowerShell
  • PowerShell Core 7.x: $env:ProgramFilesPowerShell

Nếu PowerShell 6.x đã được cài đặt trên máy tính của bạn, thư mục $env:ProgramFilesPowerShell sẽ tự động bị xóa khi bạn cài đặt PowerShell 7.1.

Lưu ý rằng tên của tệp thực thi PowerShell đã thay đổi. Trong PowerShell Core, nó là c: Program Files PowerShell 7 pwsh.exe . Nó có biểu tượng riêng trong menu Bắt đầu.

  • Để chạy Windows PowerShell dựa trên .NET Framework, powershell.exe được sử dụng
  • Để chạy PowerShell Core dựa trên .NET Core, hãy sử dụng pwsh.exe

pwsh.exe - powershell core executable

Điều này có nghĩa là bạn đã cài đặt cả Windows PowerShell 5.1 và PowerShell Core 7.1 trên máy tính của mình.

two powershell verions on window 10

Để tìm ra phiên bản và bản dựng của PowerShell được cài đặt trên thiết bị của bạn, bạn có thể kiểm tra phiên bản của tệp pwsh.exe:

(Get-Command 'C:Program FilesPowerShellpwsh.exe').Version

get pwsh.exe file version

Đây là cách bạn có thể kiểm tra phiên bản của tệp trên máy tính từ xa:

Invoke-Command -Computername computer1 -Scriptblock {(Get-Command 'C:Program FilesPowerShellpwsh.exe').Version}

Windows PowerShell cung cấp chế độ tương thích ngược đặc biệt cho phép bạn chạy phiên bản PowerShell cũ hơn ngay cả khi bạn đã cài đặt phiên bản mới hơn. Bạn có thể khởi động PowerShell của một phiên bản cụ thể (ví dụ: 4.0) bằng lệnh sau:

C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -Version 4

Cài đặt PowerShell Core qua Microsoft Store

Trên Windows 10, bạn có thể cài đặt hoặc cập nhật PowerShell qua Microsoft Store. Bạn có thể tìm ứng dụng PowerShell trong Cửa hàng theo cách thủ công hoặc sử dụng liên kết này. Ưu điểm của phương pháp cài đặt này là ứng dụng Store sẽ theo dõi phiên bản PowerShell đã cài đặt và tự động cài đặt các bản cập nhật ứng dụng khi chúng có sẵn.

Nhưng cũng có những bất lợi đối với thực tế là một phiên bản PowerShell như vậy sẽ chạy trong hộp cát.

install powershell on windows via microsoft store

Bạn có thể tải xuống tệp ứng dụng APPX / MSIX và cài đặt nó bằng cách sử dụng Add-AppxPackage (hoặc như được mô tả trong bài viết “Sửa chữa Microsoft Store”).

Triển khai PowerShell Core với Chính sách nhóm

Trong miền Active Directory, bạn có thể triển khai và cập nhật PowerShell Core một cách tập trung bằng cách sử dụng Group Policy. Sử dụng các tính năng của GPO để cài đặt các gói MSI.

  1. Tải xuống tệp cài đặt PowerShell MSI và sao chép nó vào thư mục SYSVOL trên bộ điều khiển miền;
  2. Mở Bảng điều khiển Quản lý Chính sách Nhóm Miền ( gpmc.msc ), tạo một GPO mới và liên kết nó với OU bằng máy tính và máy chủ;
  3. Đi tới phần GPO Cấu hình Máy tính -> Cài đặt Phần mềm , tạo một gói mới và chỉ định đường dẫn đến tệp cài đặt PowerShell MSI trong thư mục SYSVOL trong miền (sử dụng đường dẫn UNC); updating powershell on domain computers using gpo
    Bạn có thể sử dụng bộ lọc GPO WMI để nhắm mục tiêu chính sách của mình đến các thiết bị miền một cách chính xác hơn.
  4. Để cập nhật cài đặt phần mềm Cài đặt Chính sách Nhóm, bạn cần khởi động lại máy tính. Phiên bản mới của PowerShell sẽ được cài đặt trên tất cả các máy tính khi khởi động.

Cập nhật PowerShell từ xa

Bạn có thể sử dụng một trong các phương pháp sau để cập nhật PowerShell trên máy tính từ xa thông qua dấu nhắc lệnh.

Phương pháp đầu tiên cho phép bạn cập nhật PowerShell từ xa trên máy tính bằng trình cài đặt MSI trong thư mục mạng chia sẻ:

Invoke-Command -ComputerName mun-srv01 -ScriptBlock {Start-Process msiexec.exe -ArgumentList '/package "mun-fs01installPowerShell-7.1.3-win-x64.msi" /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1' -Wait}

Tập lệnh sau sẽ chọn tất cả các máy tính Windows 10 đang hoạt động từ miền Active Directory và bắt đầu tải xuống và cài đặt PowerShell Core trên từng máy tính đó:

Để sử dụng lệnh ghép ngắn GetADComputer, mô-đun Active Directory PowerShell phải được cài đặt trên thiết bị của bạn.

$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"}
}

Hãy cẩn thận khi sử dụng lệnh PowerShell Remoting khi kết nối với máy tính từ xa (với lệnh ghép ngắn Enter-PSSessionInvoke-Command Nếu bạn cần kết nối với điểm cuối PowerShell 7.1, bạn cần sử dụng lệnh:

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

Nếu không, bạn sẽ kết nối với điểm cuối PowerShell Remoting 5.1.

Dịch từ: http://woshub.com/install-update-powershell-windows/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây