সবচেয়ে জনপ্রিয় পাওয়ারশেল মডিউলগুলো অফিসিয়াল পাওয়ারশেল গ্যালারি (PSGallery) রিপোজিটরি থেকে Install-Module কমান্ড ব্যবহার করে অনলাইনে ইনস্টল করা হয়। যাইহোক, আপনি পাওয়ারশেল মডিউল ইনস্টল করতে পারবেন না যদি আপনার কম্পিউটার একটি আইসোলেটেড নেটওয়ার্কে থাকে বা PSRepository-এ সরাসরি অ্যাক্সেস বাধা দেওয়া থাকে। একই কথা হল যখন আপনি উইন্ডোজ সার্ভার হোস্টে পাওয়ারশেল মডিউল ইনস্টল করার চেষ্টা করেন, যারা সাধারণত সরাসরি ইন্টারনেট অ্যাক্সেস ব্লক করে রাখে। এই আর্টিকেলে, আমরা দেখাব কীভাবে অফলাইনে পাওয়ারশেল মডিউল ইনস্টল করতে হয় এবং একটি রিমোট কম্পিউটার থেকে মডিউল ইম্পোর্ট করতে হয় (উদাহরণস্বরূপ, SQLServer ম্যানেজমেন্ট PoSh মডিউল ব্যবহার করার সময়)।
লক্ষ্য করুন যে PowershellGallery.com থেকে মডিউল ডাউনলোড করার জন্য কোনো সরাসরি লিংক নেই। সাইট থেকে আপনি শুধু NuGet প্যাকেজ (একটি .nupkg ফাইল) ডাউনলোড করতে পারেন। আপনি NUPKG ফাইল থেকে একটি পাওয়ারশেল মডিউল ইনস্টল করতে পারেন, কিন্তু এটি একটি সম্পূর্ণ মডিউল ইনস্টলেশন হবে না (মূল সমস্যা হল ডিপেন্ডেন্সিগুলো রেজলভ হয় না)।

অফলাইন কম্পিউটারে পাওয়ারশেল মডিউল কীভাবে ইনস্টল করবেন?
প্রথমে, ইন্টারনেট অ্যাক্সেসসহ একটি কম্পিউটারে আপনার প্রয়োজনীয় পাওয়ারশেল মডিউলটি ইনস্টল করুন।
কম্পিউটারে পাওয়ারশেল ভার্সন ৫.১ বা তার नवীনতম সংস্করণ ইনস্টল থাকতে হবে:
$PSVersionTable.PSVersion
নিশ্চিত করুন যে মডিউলটি PSGallery-তে আছে:
Find-Module –Name *SqlServer*| Select Name, Version, Repository

মডিউলটি আপনার কম্পিউটারের নির্দিষ্ট লোকাল ফোল্ডারে ডাউনলোড করুন:
Save-Module –Name SqlServer –Path C:\PS\

ফোল্ডারটি অন্য কম্পিউটারে কপি করুন যেটিতে আপনি মডিউলটি ইনস্টল করতে চান।
দেখি পাওয়ারশেল মডিউলগুলো কোথায় সংরক্ষিত থাকে:
$env:PSModulePath -split ";"

যে দেখা যাচ্ছে, পাওয়ারশেল মডিউলগুলো নিচের পথগুলোর একটিতে থাকে:
C:\Users\username\Documents\WindowsPowerShell\Modules($Home\Documents\PowerShell\Modules) – এই ফোল্ডারে থাকা পাওয়ারশেল মডিউল শুধু এই ব্যবহারকারীর জন্য উপলব্ধ (CurrentUser);C:\Program Files\WindowsPowerShell\Modules($Env:ProgramFiles\WindowsPowerShell\Modules) — এই পথটি সব কম্পিউটার ব্যবহারকারীর জন্য মডিউল ইনস্টল করতে ব্যবহৃত হয় (-Scope AllUsers);C:\Windows\system32\WindowsPowerShell\v1.0\Modules– বিল্ট-ইন মডিউলের ডিফল্ট ফোল্ডার।
মডিউলটি C:\Program Files\WindowsPowerShell\Modules-এ কপি করুন।

নিশ্চিত করুন যে SQLServer মডিউলটি এখন উপলব্ধ:
Get-Module -Name SQLServer -ListAvailable

আপনি মডিউল ডিরেক্টরি নিচেরভাবে পেতে পারেন:
(Get-Module -ListAvailable SQLServer).path

মডিউলে উপলব্ধ কমান্ডের তালিকা প্রদর্শন করুন:
Get-Command -Module SQLServer
একই পদ্ধতিতে, আপনি যেকোনো মডিউল ইনস্টল করতে পারেন। আমি এই পদ্ধতিটি প্রায়শই SQLServer, PSWindowsUpdate, বা VMWare-এর জন্য PowerCLI মডিউল ইনস্টল করতে ব্যবহার করি।
স্পষ্ট কারণগুলোর জন্য, AzureAD এবং Exchange Online পাওয়ারশেল মডিউল অফলাইন ডিভাইসে ইনস্টল করা অর্থহীন।
রিমোট কম্পিউটার থেকে পাওয়ারশেল মডিউল ইম্পোর্ট করুন
আপনি যদি সব কম্পিউটারে পাওয়ারশেল মডিউল ইনস্টল করতে না চান, তবে PSRemoting ব্যবহার করে যেকোনো মডিউল একটি রিমোট কম্পিউটার থেকে ইম্পোর্ট করতে পারেন:
$session = New-PSSession -ComputerName dub-sql1
রিমোট কম্পিউটারে ইনস্টল করা মডিউল들의 তালিকা দেখতে:
Get-Module -PSSession $session –ListAvailable
নির্দিষ্ট পাওয়ারশেল মডিউল আপনার কম্পিউটারে ইম্পোর্ট করতে:
Import-Module -PSsession $session -Name SqlServer
শেষ হলে সেশনটি বন্ধ করা ভুলবেন না:
Remove-PSSession $session
রিমোট কম্পিউটারে ইনস্টল করা একটি পাওয়ারশেল মডিউল লোকালি ব্যবহার করার আরেকটি দিলচস্প উপায় হল Implicit remoting।
Invoke-Command ব্যবহার করে একটি রিমোট কম্পিউটারের সাথে সংযোগ করুন এবং আপনার পছন্দের পাওয়ারশেল মডিউল ইম্পোর্ট করুন:
$session = New-PSSession -ComputerName dub-sql1
Invoke-Command {Import-Module SqlServer} -Session $session
রিমোট সেশন থেকে মডিউল কমান্ডলেটগুলাকে লোকাল মডিউলে এক্সপোর্ট করুন:
Export-PSSession -Session $s -CommandName *-Sql* -OutputModule RemoteSQLServer -AllowClobber
এই কমান্ডটি আপনার কম্পিউটারে একটি নতুন RemoteSQLServer পাওয়ারশেল মডিউল তৈরি করে (C:\Program Files\WindowsPowerShell\Modules-এ)। কমান্ডলেট ফাইলগুলো কপি হয় না।
সেশন বন্ধ করুন:
Remove-PSSession $session
তারপর এই মডিউল থেকে পাওয়ারশেল কমান্ডলেট ব্যবহার করতে, আপনাকে শুধু সেশনতে ইম্পোর্ট করতে হবে:
Import-Module RemoteSQLServer
সকল SQL মডিউল কমান্ডলেট রিমোট কম্পিউটারের সাথে স্পষ্ট সংযোগ স্থাপন ছাড়াই উপলব্ধ হবে। Invoke-Sqlcmd ব্যবহার করে MS SQL ডাটাবেস ক্যোয়ারী করার চেষ্টা করুন। সমস্ত MSSQL কমান্ড আপনার পাওয়ারশেল কনসোল বন্ধ করার বা মডিউল সরানোর আগ পর্যন্ত উপলব্ধ থাকবে।