Hầu hết các mô-đun PowerShell phổ biến đều được cài đặt trực tuyến từ Thư viện PowerShell chính thức (PSGallery
) kho lưu trữ bằng cách sử dụng Mô-đun cài đặt yêu cầu. Tuy nhiên, bạn sẽ không thể cài đặt mô-đun PowerShell nếu máy tính của bạn nằm trong một mạng bị cô lập hoặc quyền truy cập trực tiếp vào PSRepository bị hạn chế. Điều này cũng đúng khi bạn đang cố gắng cài đặt mô-đun PowerShell trên các máy chủ Windows Server thường bị chặn truy cập Internet trực tiếp. Trong bài viết này, chúng tôi sẽ hướng dẫn cách cài đặt mô-đun PowerShell ngoại tuyến và nhập mô-đun từ máy tính từ xa (ví dụ:khi sử dụng mô-đun PoSh quản lý SQLServer).
Lưu ý rằng không có liên kết trực tiếp để tải xuống mô-đun từ PowershellGallery.com. Thứ duy nhất bạn có thể tải xuống từ trang web là gói NuGet ( .nupkg tập tin). Bạn có thể cài đặt mô-đun PowerShell từ tệp NUPKG, nhưng đây sẽ không phải là một cài đặt mô-đun hoàn chỉnh (vấn đề chính là các phần phụ thuộc không được giải quyết).
Cách cài đặt mô-đun PowerShell trên máy tính ngoại tuyến?
Trước hết, hãy cài đặt mô-đun PowerShell bạn cần trên máy tính có kết nối Internet.
PowerShell phiên bản 5.1 hoặc mới hơn phải được cài đặt trên máy tính:
$PSVersionTable.PSVersion
Đảm bảo rằng mô-đun tồn tại trong PSGallery:
Find-Module –Name *SqlServer*| Select Name, Version, Repository
Tải mô-đun xuống thư mục cục bộ được chỉ định trên máy tính của bạn:
Save-Module –Name SqlServer –Path C:\PS\
Sao chép thư mục vào một máy tính khác mà bạn muốn cài đặt mô-đun.
Hãy xem những thư mục nào mà mô-đun PowerShell được lưu trữ trong:
$env:PSModulePath -split ";"
Như bạn có thể thấy, mô-đun PowerShell nằm trên một trong các đường dẫn sau:
-
C:\Users\username\Documents\WindowsPowerShell\Modules
($Home\Documents\PowerShell\Modules
) - Các mô-đun PowerShell trong thư mục này chỉ khả dụng cho người dùng này (Người dùng hiện tại); -
C:\Program Files\WindowsPowerShell\Modules
($Env:ProgramFiles\WindowsPowerShell\Modules
) - đường dẫn được sử dụng để cài đặt mô-đun cho tất cả người dùng máy tính (-Scope AllUsers
); -
C:\Windows\system32\WindowsPowerShell\v1.0\Modules
- thư mục mặc định cho các mô-đun tích hợp sẵn.
Sao chép mô-đun vào C:\ Program Files \ WindowsPowerShell \ Modules .
Đảm bảo rằng mô-đun SQLServer hiện khả dụng:
Get-Module -Name SQLServer -ListAvailable
Bạn có thể lấy thư mục mô-đun như hình dưới đây:
(Get-Module -ListAvailable SQLServer).path
Hiển thị danh sách các lệnh có sẵn trong mô-đun:
Get-Command -Module SQLServer
Theo cách tương tự, bạn có thể cài đặt bất kỳ mô-đun nào. Tôi thường sử dụng phương pháp này để cài đặt SQLServer, PSWindowsUpdate hoặc PowerCLI cho mô-đun VMWare.
Vì những lý do rõ ràng, việc cài đặt các mô-đun AzureAD và Exchange Online PowerShell trên các thiết bị ngoại tuyến là không hợp lý.Nhập Mô-đun PowerShell từ Máy tính Từ xa
Nếu không muốn cài đặt mô-đun PowerShell trên tất cả các máy tính, bạn có thể nhập bất kỳ mô-đun nào từ máy tính từ xa bằng PSRemoting:
$session = New-PSSession -ComputerName dub-sql1
Để hiển thị danh sách các mô-đun được cài đặt trên máy tính từ xa:
Get-Module -PSSession $session –ListAvailable
Để nhập mô-đun PowerShell được chỉ định vào máy tính của bạn:
Import-Module -PSsession $session -Name SqlServer
Đừng quên đóng phiên khi bạn kết thúc:
Remove-PSSession $session
Một cách thú vị khác để sử dụng cục bộ mô-đun PowerShell được cài đặt trên máy tính từ xa thông qua Xóa ẩn .
Kết nối với máy tính từ xa bằng Invoke-Command và nhập mô-đun PowerShell bạn muốn:
$session = New-PSSession -ComputerName dub-sql1
Invoke-Command {Import-Module SqlServer} -Session $session
Xuất lệnh ghép ngắn của mô-đun từ phiên từ xa sang mô-đun cục bộ:
Export-PSSession -Session $s -CommandName *-Sql* -OutputModule RemoteSQLServer -AllowClobber
Lệnh tạo mô-đun RemoteSQLServer PowerShell mới trên máy tính của bạn (trong C:\ Program Files \ WindowsPowerShell \ Modules). Bản thân các tệp cmdlet không được sao chép.
Đóng phiên:
Remove-PSSession $session
Sau đó, để sử dụng lệnh ghép ngắn PowerShell từ mô-đun này, bạn chỉ cần nhập chúng vào phiên:
Import-Module RemoteSQLServer
Tất cả các lệnh ghép ngắn mô-đun SQL sẽ khả dụng mà không cần thiết lập kết nối rõ ràng với máy tính từ xa. Cố gắng truy vấn cơ sở dữ liệu MS SQL bằng Invoke-Sqlcmd. Tất cả các lệnh MSSQL đều khả dụng cho đến khi bạn đóng bảng điều khiển PowerShell hoặc xóa mô-đun.