Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

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

Trong bài viết này, chúng tôi sẽ hướng dẫn cách cập nhật 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 đã cho biết rằng hiện có hai phiên bản PowerShell:một 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 nữa) và PowerShell Core mới nền tảng (phiên bản 7.1 hiện có sẵn). Mặc dù việc đá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

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

Để 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:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’ -Name Release).Release

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

Trong trường hợp của tôi, phiên bản phát hành 378675 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):

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

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 của 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 của Windows Management Framework 5.1.

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

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.

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

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), rồi đến 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. Lõi PowerShell 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) 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 ngày 4 tháng 3 năm 2021 của PowerShell v7.1.3 . 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 Nội dung liệt kê và tìm 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 ).

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

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

Cập nhật phiên bản PowerShell trên 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:

  • -Điểm đến - thay đổi thư mục cài đặt PowerShell Core mặc định
  • -Xem trước - cài đặt phiên bản PowerShell Xem trước mới nhất
  • -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

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

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 đó là PoSh 7.1.3.

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

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

hoặc cho PowerShell 7.x:
choco install pwsh -y
choco install pwsh -y

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

  • 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

Nếu PowerShell 6.x đã được cài đặt trên máy tính của bạn, thì $env:ProgramFiles\PowerShell\6 thư mục 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 lệnh được sử dụng
  • Để chạy PowerShell Core dựa trên .NET Core, hãy sử dụng pwsh.exe

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

Đ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.

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

Để 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 Files\PowerShell\7\pwsh.exe').Version

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

Đâ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 Files\PowerShell\7\pwsh.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:\Windows\System32\WindowsPowerShell\v1.0\powershell.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à phiên bản PowerShell như vậy sẽ chạy trong hộp cát.

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

Bạn có thể tải xuống tệp ứng dụng APPX / MSIX và cài đặt bằng Add-AppxPackage lệnh ghép ngắn (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); Cập nhật phiên bản PowerShell trên Windows 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 chính xác hơn.
  4. Để cập nhật cài đặt Chính sách Nhóm cài đặt phần mềm, bạn cần khởi động lại máy tính. Phiên bản PowerShell mới 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 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-fs01\install\PowerShell-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 mỗi 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 Enter-PSSessionInvoke-Command cmdlet). 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.