powershell - 최신 - 파워쉘 업데이트




설치된 PowerShell 버전 확인 (16)

Command $PSVersionTable.PSVersion 이 도움이됩니다.

Major  Minor  Patch  PreReleaseLabel BuildLabel
-----  -----  -----  --------------- ----------
6      1      0

PowerShell 버전이 컴퓨터에 설치되어 있는지, 실제로 설치된 버전이 무엇인지 어떻게 알 수 있습니까?


PS 버전을 확인한 다음 적절한 코드를 실행해야했습니다. 우리 서버 중 일부는 v5를 실행하고 다른 일부는 v4를 실행합니다. 즉, compress와 같은 일부 기능은 사용 가능하거나 사용 가능하지 않을 수 있습니다.

이것이 나의 해결책이다 :

if ($PSVersionTable.PSVersion.Major -eq 5) {
    #Execute code available in 5, like Compress
    Write-Host "You are running version 5"
}
else {
    #Use a different process
    Write-Host "This is version $PSVersionTable.PSVersion.Major"
}

PowerShell이 ​​설치되어 있는지 확인하려면 다음을 사용하십시오.

HKLM\Software\Microsoft\PowerShell\1 Install ( = 1 )

RC2 또는 RTM이 설치되어 있는지 확인하려면 다음을 사용하십시오.

HKLM\Software\Microsoft\PowerShell\1 PID (=89393-100-0001260-00301) -- For RC2
HKLM\Software\Microsoft\PowerShell\1 PID (=89393-100-0001260-04309) -- For RTM

출처 : 이 웹 사이트 .


PowerShell이 ​​설치되어 있는지 확인하려면 레지스트리의 존재 여부를 확인할 수 있습니다.

HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\Install

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3

그리고 만약 있다면, 그 값이 1인지 (설치된 경우), 블로그 게시물에 자세히 설명되어 있습니다. PowerShell이 ​​설치되어 있고 버전이 있는지 확인하십시오 .

설치된 PowerShell 버전을 확인하려면 레지스트리 키를 확인할 수 있습니다

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\PowerShellVersion

.ps1 스크립트에서 설치된 PowerShell의 버전을 확인하려면 PowerShell 버전을 실행 중인 PowerShell.com에서 설명한대로 다음 한 줄짜리를 사용할 수 있습니다.

$isV2 = test-path variable:\psversiontable

동일한 사이트는 버전을 반환하는 함수도 제공합니다.

function Get-PSVersion {
    if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"}
}

가장 도움이되는 대답은 if exists 부분을 ​​다루지 않았기 때문에, 나는 신속하고 더러운 해결책을 통해 그것을 받아 들일 것이라고 생각했습니다. 그것은 당신이 원하는 것 같은 경로 환경 변수에 있는 PowerShell에 의존합니다. (모자 끝은 내가 그걸 모르기 때문에 맨 위 대답에.) 이것을 텍스트 파일에 붙여 넣고 이름을 짓는다.

Powershell Version.cmd 테스트

또는 유사합니다.

@echo off
echo Checking powershell version...
del "%temp%\PSVers.txt" 2>nul
powershell -command "[string]$PSVersionTable.PSVersion.Major +'.'+ [string]$PSVersionTable.PSVersion.Minor | Out-File ([string](cat env:\temp) + '\PSVers.txt')" 2>nul
if errorlevel 1 (
 echo Powershell is not installed. Please install it from download.Microsoft.com; thanks.
) else (
 echo You have installed Powershell version:
 type "%temp%\PSVers.txt"
 del "%temp%\PSVers.txt" 2>nul
)
timeout 15

내장 된 $psversiontable 변수를 볼 수 있습니다. 존재하지 않으면 V1이 생깁니다. 그것이 존재한다면, 그것은 당신에게 필요한 모든 정보를 줄 것입니다.

1 >  $psversiontable

Name                           Value                                           
----                           -----                                           
CLRVersion                     2.0.50727.4927                                  
BuildVersion                   6.1.7600.16385                                  
PSVersion                      2.0                                             
WSManStackVersion              2.0                                             
PSCompatibleVersions           {1.0, 2.0}                                      
SerializationVersion           1.1.0.1                                         
PSRemotingProtocolVersion      2.1    

다음 확인을 완료하여 Windows PowerShell 버전이 설치되어 있는지 확인할 수 있습니다.

  1. 시작, 모든 프로그램, 보조 프로그램, Windows PowerShell을 차례로 클릭 한 다음 Windows PowerShell을 클릭합니다.
  2. Windows PowerShell 콘솔에서 명령 프롬프트에 다음 명령을 입력하고 Enter 키를 누릅니다.

    Get-Host | 개체 버전 선택

다음과 같은 출력이 표시됩니다.

Version
-------
3.0

http://www.myerrorsandmysolutions.com/how-to-verify-the-windows-powershell-version-installed/


설치 여부를 확인하는 가장 쉬운 방법을 찾았습니다.

  • 명령 프롬프트를 실행합니다 (시작, 실행, cmd , 확인).
  • powershell 을 입력하고 return 키를 powershell . PowerShell PS 프롬프트가 나타납니다.

C:\Users\MyUser>powershell

Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\Users\MyUser>

그런 다음 $PSVersionTable.PSVersion 을 입력하여 PowerShell 프롬프트에서 버전을 확인할 수 있습니다.

PS C:\Users\MyUser> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
2      0      -1     -1

PS C:\Users\MyUser>

명령 프롬프트로 돌아가려면 exit 입력하십시오 (명령 프롬프트를 닫으려면 다시 exit 하십시오).

스크립트를 실행하려면 http://ss64.com/ps/syntax-run.html 참조 http://ss64.com/ps/syntax-run.html .


아래 cmdlet은 PowerShell 버전을 반환합니다.

$PSVersionTable.PSVersion.Major

여기에 2 센트를 추가하고 싶습니다.

PowerShell을 외부 에서 호출하여 한 줄로 버전을 직접 확인할 수 있습니다 (예 : 명령 프롬프트에서).

powershell -Command "$PSVersionTable.PSVersion"

편집하다:

@psaul 에 따르면 당신 실제로 그것이 (CMD, Powershell 또는 Pwsh)가 어디에서 왔는지 불가지론 한 명령을 가질 수 있습니다 , 감사합니다.

powershell -command "(Get-Variable PSVersionTable -ValueOnly).PSVersion" 

나는 테스트를 거쳤고 CMD와 Powershell 모두에서 완벽하게 작동했습니다.


이 페이지를 잊어 버리고 결코 돌아 오지 않는 가장 쉬운 방법은 Get-Variable 을 배우는 것입니다.

Get-Variable | where {$_.Name -Like '*version*'} | %{$_[0].Value}

모든 변수를 기억할 필요가 없습니다. 그냥 Get-Variable 이면 충분합니다 ( "버전에 대해 뭔가 있어야합니다").


일반적으로 다음과 같이 얻을 수있는 메이저 번호를 사용하여 얻습니다.

$PSVersionTable.PSVersion.Major

Get-Host 명령을 사용하십시오. 결과의 두 번째 줄은 버전입니다.


PowerShell이 ​​설치되어 있는지 확인하고 설치된 버전을 확인하기위한 Microsoft의 권장 순방향 호환 방법 은 두 개의 특정 레지스트리 키를 보는 것입니다. 링크가 끊어진 경우를 대비하여 여기에 세부 정보를 재현했습니다.

링크 된 페이지에 따르면 :

다른 레지스트리 키 또는 PowerShell.exe의 버전이나 PowerShell.exe의 위치에 따라 장기간 작동하지 않을 수도 있습니다.

PowerShell 버전 이 설치되어 있는지 확인하려면 레지스트리에서 다음 값을 확인하십시오.

  • 주요 위치 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1
  • 값 이름 : 설치
  • 값 유형 : REG_DWORD
  • 값 데이터 : 0x00000001 (1

PowerShell의 버전 1.0 또는 2.0 이 설치되어 있는지 확인하려면 레지스트리에서 다음 값을 확인하십시오.

  • 주요 위치 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine
  • 값 이름 : PowerShellVersion
  • 값 유형 : REG_SZ
  • 값 데이터 : <1.0 | 2.0>

$host.version 은 틀리거나 틀립니다. 이것은 호스트 실행 파일 (powershell.exe, powergui.exe, powershell_ise.exe, powershellplus.exe 등)의 버전이며 엔진 자체의 버전은 아닙니다 .

엔진 버전은 $psversiontable.psversion 있습니다. PowerShell 1.0에서는이 변수가 존재하지 않으므로이 변수를 사용할 수 없다면 분명히 엔진이 1.0이라고 가정하는 것이 안전합니다.


Get-Host 또는 $ PSVersionTable을 사용 합니다. Andy Schneider가 지적 $PSVersionTable , $PSVersionTable 은 버전 1에서는 작동하지 않습니다. 그것은 버전 2에서 소개되었습니다.

get-host

Name             : ConsoleHost
Version          : 2.0
InstanceId       : d730016e-2875-4b57-9cd6-d32c8b71e18a
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-GB
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

$PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.4200
BuildVersion                   6.0.6002.18111
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1




powershell