इस लेख में हम सीखेंगे कि PowerShell संस्करण क्या मौजूद हैं, Windows PowerShell
में क्या अंतर है और PowerShell Core
, और स्थानीय या दूरस्थ कंप्यूटर पर स्थापित पावरशेल संस्करण की जांच कैसे करें।
Windows PowerShell और PowerShell Core का इतिहास और संस्करण
विंडोज 7 एसपी1 और विंडोज सर्वर 2008 आर2 एसपी1 से शुरू होने वाले सभी विंडोज संस्करणों में पावरशेल डिफ़ॉल्ट रूप से स्थापित है। निम्न तालिका सभी PowerShell संस्करणों की सूची दिखाती है:
PS संस्करण | नोट |
पावरशेल 1.0 | Windows Server 2003 SP1 और Windows XP पर मैन्युअल रूप से स्थापित किया जा सकता है |
पावरशेल 2.0 | Windows Server 2008 R2 और Windows 7 |
पावरशेल 3.0 | Windows 8 और Windows Server 2012 |
पावरशेल 4.0 | Windows 8.1 और Windows Server 2012 R2 |
पावरशेल 5.0 | Windows 10 RTM पर प्रीइंस्टॉल्ड किया गया और Windows Update के द्वारा स्वचालित रूप से 5.1 में अपडेट किया गया |
पावरशेल 5.1 | इसे विंडोज 10 (बिल्ड 1709) और विंडोज सर्वर 2016 में बनाया गया है |
पावरशेल कोर 6.0 और 6.1 | यह अगला क्रॉस-प्लेटफ़ॉर्म पावरशेल संस्करण (.NET कोर पर आधारित) है जो सभी समर्थित विंडोज संस्करणों और मैकोज़, सेंटोस, आरएचईएल, डेबियन, उबंटू, ओपनएसयूएसई पर स्थापित किया जा सकता है |
पावरशेल कोर 7.0 | यह मार्च, 2020 में जारी किया गया नवीनतम पावरशेल संस्करण है (.NET Core 2.x के बजाय इसमें .NET Core 3.1 का उपयोग किया गया है) |
यह ध्यान देने योग्य है कि पिछले 2 वर्षों में माइक्रोसॉफ्ट ने क्लासिक विंडोज पावरशेल के विकास को निलंबित कर दिया है (केवल बग फिक्स और सुरक्षा अपडेट जारी किए गए हैं) और ओपन-सोर्स क्रॉस-प्लेटफॉर्म पॉवरशेल कोर पर ध्यान केंद्रित किया गया है। ।
Windows PowerShell और PowerShell Core में क्या अंतर है?
- Windows PowerShell .NET Framework . पर आधारित है (उदाहरण के लिए, PowerShell 5 को .NET Framework v4.5 की आवश्यकता है, सुनिश्चित करें कि यह स्थापित है)। पावरशेल कोर .नेट कोर . पर आधारित है;
- Windows PowerShell केवल Windows ऑपरेटिंग सिस्टम में काम करता है, जबकि PowerShell Core क्रॉस-प्लेटफ़ॉर्म है और Linux में भी काम कर सकता है;
- पॉवरशेल कोर पूरी तरह से विंडोज पावरशेल के अनुरूप नहीं है, हालांकि, माइक्रोसॉफ्ट पिछले पीएस सीएमडीलेट्स और स्क्रिप्ट के साथ पश्चगामी संगतता में सुधार पर काम कर रहा है। (पावरशेल कोर पर जाने से पहले अपनी पुरानी PS1 स्क्रिप्ट का परीक्षण करने की अनुशंसा की जाती है)। पावरशेल कोर 7 विंडोज पावरशेल के साथ उच्चतम संगतता प्रदान करता है;
- आप पावरशेल कोर स्क्रिप्ट को संपादित करने के लिए पावरशेल आईएसई संपादक का उपयोग नहीं कर सकते (लेकिन विजुअल स्टूडियो कोड का उपयोग किया जा सकता है);
- चूंकि Windows PowerShell अब विकसित नहीं हुआ है, इसलिए यह अनुशंसा की जाती है कि आप PowerShell Core में माइग्रेट करना प्रारंभ करें।
कंसोल से पावरशेल संस्करण कैसे प्राप्त करें?
यह पता लगाने का सबसे आसान तरीका है कि आपके कंप्यूटर पर कौन सा पावरशेल संस्करण स्थापित है, कमांड का उपयोग करना है:
host
संस्करण गुण मान की जाँच करें।
निम्न स्क्रीनशॉट विंडोज 10 में डिफ़ॉल्ट रूप से स्थापित पावरशेल 5.1 के साथ बनाया गया था, जैसे कि विंडोज सर्वर 2016 में।
या
$PSVersionTable
आप केवल PowerShell संस्करण मान प्राप्त कर सकते हैं:
$PSVersionTable.PSVersion.major
(इस उदाहरण में हमें स्वच्छ विंडोज सर्वर 2008 R2 में PSVersion 2.0 मिला है)
$PSVersionTable कमांड विभिन्न ऑपरेटिंग सिस्टम में पावरशेल कोर में सही ढंग से काम करता है।
आप रजिस्ट्री के माध्यम से स्थापित पावरशेल संस्करण का भी पता लगा सकते हैं। ऐसा करने के लिए, रजिस्ट्री कुंजी HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
में PowerShellVersion पैरामीटर का मान प्राप्त करें Get-ItemProperty cmdlet का उपयोग करना:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion
ऊपर वर्णित विधि विंडोज सर्वर 2012/विंडोज 8 या नए पर काम करती है।
Windows Server 2008 R2/Windows 7 में, आप किसी अन्य reg कुंजी में रजिस्ट्री पैरामीटर का मान प्राप्त कर सकते हैं:
(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 Remoting के माध्यम से दूरस्थ कंप्यूटर पर PowerShell संस्करण स्थापित कर सकते हैं सीएमडीलेट:
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
अपने पावरशेल संस्करण को जानना महत्वपूर्ण हो सकता है यदि आप स्क्रिप्ट या कमांड चलाते हैं जो किसी विशिष्ट पीएस संस्करण के cmdlets या सुविधाओं का उपयोग करते हैं। यदि आप स्क्रिप्ट में स्थापित पावरशेल संस्करण का पता लगाना चाहते हैं और उसके आधार पर 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"
}
अगले लेख में, हम देखेंगे कि विंडोज़ में पावरशेल संस्करण को कैसे अपडेट किया जाए।