এই নিবন্ধে আমরা PowerShell সংস্করণ বিদ্যমান, Windows PowerShell
এর মধ্যে পার্থক্য কী তা শিখব এবং PowerShell Core
, এবং কিভাবে একটি স্থানীয় বা দূরবর্তী কম্পিউটারে ইনস্টল করা PowerShell সংস্করণটি পরীক্ষা করবেন।
উইন্ডোজ পাওয়ারশেল এবং পাওয়ারশেল কোরের ইতিহাস এবং সংস্করণ
Windows 7 SP1 এবং Windows Server 2008 R2 SP1 থেকে শুরু করে সমস্ত Windows সংস্করণে PowerShell ডিফল্টরূপে ইনস্টল করা আছে। নিম্নলিখিত সারণী সমস্ত PowerShell সংস্করণের তালিকা দেখায়:
PS সংস্করণ | দ্রষ্টব্য |
পাওয়ারশেল 1.0 | Windows Server 2003 SP1 এবং Windows XP-এ ম্যানুয়ালি ইনস্টল করা যেতে পারে |
PowerShell 2.0 | Windows Server 2008 R2 এবং Windows 7 |
PowerShell 3.0 | Windows 8 এবং Windows Server 2012 |
PowerShell 4.0 | Windows 8.1 এবং Windows Server 2012 R2 |
PowerShell 5.0 | Windows 10 RTM-এ প্রি-ইনস্টল করা হয়েছে এবং Windows আপডেটের মাধ্যমে স্বয়ংক্রিয়ভাবে 5.1-এ আপডেট হয়েছে |
PowerShell 5.1 | এটি Windows 10 (Build 1709 দিয়ে শুরু) এবং Windows Server 2016-এ তৈরি করা হয়েছে |
পাওয়ারশেল কোর 6.0 এবং 6.1 | এটি পরবর্তী ক্রস-প্ল্যাটফর্ম পাওয়ারশেল সংস্করণ (.NET কোরের উপর ভিত্তি করে) যা সমস্ত সমর্থিত উইন্ডোজ সংস্করণে এবং MacOS, CentOS, RHEL, Debian, Ubuntu, openSUSE এ ইনস্টল করা যেতে পারে |
পাওয়ারশেল কোর 7.0 | এটি মার্চ, 2020 এ প্রকাশিত সর্বশেষ PowerShell সংস্করণ (.NET Core 2.x এর পরিবর্তে .NET Core 3.1 ব্যবহার করা হয়েছে) |
এটি লক্ষণীয় যে গত 2 বছরে মাইক্রোসফ্ট ক্লাসিক Windows PowerShell এর বিকাশ স্থগিত করেছে (শুধুমাত্র বাগ ফিক্স এবং নিরাপত্তা আপডেট প্রকাশ করা হয়েছে) এবং ওপেন-সোর্স ক্রস-প্ল্যাটফর্ম পাওয়ারশেল কোর-এ ফোকাস করেছে। .
Windows PowerShell এবং PowerShell Core-এর মধ্যে পার্থক্য কী?
- Windows PowerShell .NET ফ্রেমওয়ার্ক এর উপর ভিত্তি করে (উদাহরণস্বরূপ, PowerShell 5 এর জন্য .NET ফ্রেমওয়ার্ক v4.5 প্রয়োজন, নিশ্চিত করুন যে এটি ইনস্টল করা আছে)। পাওয়ারশেল কোর .Net Core এর উপর ভিত্তি করে;
- Windows PowerShell শুধুমাত্র Windows অপারেটিং সিস্টেমে কাজ করে, যখন PowerShell Core হল ক্রস-প্ল্যাটফর্ম এবং লিনাক্সেও কাজ করতে পারে;
- PowerShell Core Windows PowerShell-এর সাথে সম্পূর্ণরূপে সঙ্গতিপূর্ণ নয়, তবে, Microsoft পূর্ববর্তী PS cmdlets এবং স্ক্রিপ্টগুলির সাথে পশ্চাদগামী সামঞ্জস্যের উন্নতির জন্য কাজ করছে৷ (পাওয়ারশেল কোরে যাওয়ার আগে আপনার পুরানো PS1 স্ক্রিপ্টগুলি পরীক্ষা করার পরামর্শ দেওয়া হয়)। PowerShell Core 7 Windows PowerShell-এর সাথে সর্বোচ্চ সামঞ্জস্য প্রদান করে;
- পাওয়ারশেল কোর স্ক্রিপ্ট সম্পাদনা করতে আপনি PowerShell ISE সম্পাদক ব্যবহার করতে পারবেন না (তবে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করা যেতে পারে);
- যেহেতু Windows PowerShell আর বিকশিত হয়নি, তাই এটি সুপারিশ করা হচ্ছে যে আপনি PowerShell কোরে স্থানান্তর করা শুরু করুন৷
কনসোল থেকে পাওয়ারশেল সংস্করণ কীভাবে পাবেন?
আপনার কম্পিউটারে কোন PowerShell সংস্করণ ইনস্টল করা আছে তা খুঁজে বের করার সবচেয়ে সহজ উপায় হল কমান্ডটি ব্যবহার করা:
host
সংস্করণ সম্পত্তি মান পরীক্ষা করুন.
নিম্নোক্ত স্ক্রিনশটটি Windows 10-এ তৈরি করা হয়েছে যেখানে PowerShell 5.1 ডিফল্টরূপে ইনস্টল করা হয়েছে, যেমন Windows Server 2016-এ।
অথবা
$PSVersionTable
আপনি শুধুমাত্র PowerShell সংস্করণ মান পেতে পারেন:
$PSVersionTable.PSVersion.major
(এই উদাহরণে আমরা পরিষ্কার Windows Server 2008 R2 এ PSVersion 2.0 পেয়েছি)
$PSVersionTable কমান্ড সঠিকভাবে বিভিন্ন অপারেটিং সিস্টেমের PowerShell কোরে কাজ করে।
আপনি রেজিস্ট্রির মাধ্যমে ইনস্টল করা পাওয়ারশেল সংস্করণটিও খুঁজে পেতে পারেন। এটি করতে, রেজিস্ট্রি কী HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
এ PowerShellVersion প্যারামিটারের মান পান Get-ItemProperty cmdlet ব্যবহার করে:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion
উপরে বর্ণিত পদ্ধতিটি Windows Server 2012/Windows 8 বা তার পরবর্তীতে কাজ করে।
Windows Server 2008 R2/Windows 7-এ, আপনি রেজিস্ট্রি প্যারামিটারের মান অন্য রেজি কী-তে পেতে পারেন:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion
ইনস্টল করা পাওয়ারশেল কোর সংস্করণ পেতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShellCore\InstalledVersions* -Name 'SemanticVersion').SemanticVersion
রিমোট কম্পিউটারে পাওয়ারশেলের সংস্করণ পরীক্ষা করুন
দূরবর্তী হোস্টে পাওয়ারশেল সংস্করণ পরীক্ষা করতে, $PSVersionTable-এর মান ব্যবহার করুন পরিবেশ পরিবর্তনশীল বা সরাসরি রেজিস্ট্রি থেকে তথ্য পান। অন্যান্য পদ্ধতি ভুল তথ্য প্রদান করতে পারে।
আপনি ইনভোক-কমান্ড ব্যবহার করে PowerShell রিমোটিং এর মাধ্যমে একটি দূরবর্তী কম্পিউটারে PowerShell সংস্করণ ইনস্টল করতে পারেন cmdlet:
Invoke-Command -ComputerName mun-dc01 -ScriptBlock {$PSVersionTable.PSVersion} -Credential $cred
Major Minor Build Revision PSComputerName ----- ----- ----- -------- -------------- 5 1 14393 3383 mun-dc01
আপনি নিম্নলিখিত স্ক্রিপ্ট ব্যবহার করে একাধিক কম্পিউটারে ইনস্টল করা পাওয়ারশেল সংস্করণ পেতে পারেন (দূরবর্তী কম্পিউটারের তালিকাটি একটি সাধারণ পাঠ্য ফাইল হিসাবে নির্দিষ্ট করা আবশ্যক):
Invoke-Command -ComputerName (Get-Content C:\PS\host_list.txt) -
ScriptBlock{$PSVersionTable.PSVersion} | Select PSComputerName, @{N="PS Version";E={$_.Major}}
অথবা আপনি Get-ADComputer এর মাধ্যমে ডোমেন কম্পিউটারগুলির একটি তালিকা পেতে পারেন এবং দূরবর্তীভাবে তাদের PowerShell সংস্করণগুলি পরীক্ষা করতে পারেন:
$adcomputer=(Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"' -SearchBase ‘OU=servers,OU=Munich,dc=woshub,dc=com’ ).Name
Invoke-Command-ComputerName $adcomputer -Scriptblock{$PSVersionTable.psversion} -ErrorAction SilentlyContinue
PowerShell.exe -version 3
আপনার PowerShell সংস্করণটি জানা গুরুত্বপূর্ণ হতে পারে যদি আপনি স্ক্রিপ্ট বা কমান্ড চালান যা একটি নির্দিষ্ট PS সংস্করণের cmdlets বা বৈশিষ্ট্যগুলি ব্যবহার করে। আপনি যদি স্ক্রিপ্টে ইনস্টল করা PowerShell সংস্করণ সনাক্ত করতে চান এবং এর উপর ভিত্তি করে cmdlets ব্যবহার করতে চান, তাহলে আপনি নিম্নলিখিত PS স্ক্রিপ্টটি চালাতে পারেন:
$ps_version = $PSVersionTable.PSVersion.major
if ( $ps_version -eq "2” )
{
write "You are using Powershell 2.0"
}
elseif ( $ps_version -eq "5" )
{
write " You are using Powershell 5"
}
পরবর্তী প্রবন্ধে, আমরা Windows এ PowerShell সংস্করণ কিভাবে আপডেট করতে হয় তা দেখব।