PowerShell 에서는 똑같은 일을 할 수있는 엄청나게 많은 방법이 있습니다(또는 그것에 가깝습니다). 이 블로그 게시물에서는 로컬 및 원격 컴퓨터에있는 모든 방법 확인 PowerShell 버전을 배우게됩니다. 우리는 나쁜 방법과 나의 권장 방법을 다룰 것입니다.
하고 싶은 경우에서 가 PowerShell 초보자를 PowerShell,나는 추천을 삼키려는 듯이 무료 미니는 물론 건물에 PowerShell 도구입니다. 이것은 Adam The Automator 의 전체 설명과 지침이 포함 된 단계별 자습서입니다!,
Powershell 버전을 확인하는 다양한 방법을 보여주는 웹 사이트가 있습니다. 그러나 그들 모두의 포괄적 인 목록을 컴파일 한 것은 없습니다. 나는 그것을 바꾸기로 결정했다.
이러한 모든 방법은 Windows PowerShell 과 PowerShell Core 모두에서 작동해야합니다. 이러한 방법은 Windows PowerShell 버전 1.0 에서 PowerShell7 까지 모든 방법을 작동해야합니다.,
할 수 있는 방법을 알아 버전의 PowerShell 실행하고 있습니다:
(Get-Host).Version
속성$host.Version
속성- 레지스트리(Windows PowerShell 만)
$PSVersionTable.PSVersion
속성
을 나누자는 모든 방법을 찾기 위해 버전의 PowerShell 적어도에서 가장 권장하는 방법입니다.
목차
Get-Host
PowerShell 에는 호스트로 알려진 개념이 있습니다. 호스트는 PowerShell 엔진을 호스팅하는 프로그램입니다., 그것은 PowerShell 엔진 자체가 아닙니다.PowerShell 콘솔 또는 통합 터미널이있는 코드 편집기는 PowerShell 호스트입니다.
호스트는 PowerShell 자체와 완전히 독립적 인 버전을 가질 수 있습니다. 이것은 많은 신규 이민자에게 속일 수 있습니다. 왜 그런지 보여 드리겠습니다.
(Get-Host).Version
를 실행하면 PowerShell 엔진 버전 일 수있는 것처럼 보이는 버전 번호를 반환한다는 것을 알 수 있습니다. 외모는 속일 수 있습니다.
아래 windows PowerShell5.1 에서Get-Host
를 실행했으며 5.1.17134.858 과 함께 돌아 오는 것을 볼 수 있습니다., 이것은 합법적 인 버전처럼 보입니다.
그러나 때로는 실행할 경우Get-Host
에서는 통합 터미널 버전을 동일하지 않습니다. 일반적으로 호스트가 동일한 버전의 엔진을 나타낼 것이지만 항상 그렇게 할 필요는 없습니다.
체크 Powershell 버전을 통해 얻을 호스트에서 원격 컴퓨터
하더라도Get-Host
으로 돌아 것 같은 버전을 실행하는 경우에는 로컬 컴퓨터,그것은 결코에서 원격 컴퓨터입니다.,
예를 들어,실행Get-Host
원격 Windows 서버에서 2016 년을 통해 서버Invoke-Command
어떻게 볼 것입니다.마지막으로 확인한 결과 Windows Server2016 에서 PowerShell v1 을 실행할 수 없습니다.
Get-Host
에 의존하는 것은 나쁜 생각입니다.
Powershell 버전$host 를 확인하십시오.버전 명령
참조$host.Version
는 Powershell 버전을 확인하는 또 다른 방법입니다. $host
변수는Get-Host
와 동일한 출력을 반환하는 자동 변수입니다.,
아무것도 특별한 이에 대한 방법입니다. 그것은 단순히Get-Host
를 실행하는 것과 동일합니다.
$호스트.버전에서 원격 컴퓨터
을 볼 것 같은 행동을 통해 PowerShell 원격으로$host.Version
로 실행하는Get-Host
.
위험,윌 로빈슨!
레지스트리
PowerShell 자체를 열지 않으려면 레지스트리를 확인할 수도 있습니다., PowerShell 의 버전은 레지스트리 키 경로HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
의 값 아래에 자리 잡고 있습니다. 이 레지스트리 키에는 값이라는PowerShellVersion
참조할 수 있는여 사용하는Get-ItemProperty
.이 버전은 비슷하지만 다른 옵션처럼 개정판을 포함하지 않는다는 것을 알 수 있습니다.
다른 도구 사용
레지스트리를 사용하면 버전을 찾기 위해 PowerShell 을 전혀 사용할 필요가 없음을 의미합니다. 명령 프롬프트 또는 레지스트리를 읽을 수있는 다른 도구에서 명령을 실행할 수 있습니다.,
원격 컴퓨터의 레지스트리
레지스트리는 정적이며 값은 로컬 또는 원격으로 변경되지 않습니다. 로컬에서 보는 것이 원격으로 보는 것과 같을 것이라고 확신 할 수 있습니다.
로컬 및 원격으로 동일한 버전을 보여주는 것이 좋습니다. 그러나$PSVersionTable
자동 변수를 사용하여 보여주는 더 좋은 방법이 있습니다.
$PSVersionTable 을 통해 Powershell 버전을 확인하십시오.PSVersion 명령
마지막으로,그리고 마지막 방법을 참조하여PSVersion
속성$PSVersionTable
자동 변수가 있습니다., 이 방법은 항상 PowerShell 엔진을 나타냅니다.
$PSVersionTable
자동 변수를 읽기 전용 해시 테이블을 반환하는 정보에 대해 구체적으로 PowerShell engin 버전입니다. 이 자동 변수는 버전을 반환 할뿐만 아니라PSEdition
도 반환합니다. 이 속성은 코어 또는 데스크톱 중 하나가 실행중인 PowerShell 의 버전에 대한 추가 정보를 제공 할 수 있습니다.,
$PSVersionTable 원격 컴퓨터에서
를 사용하는$PSVersionTable
자동 변수가 정확한으로 로컬로 그것은 원격으로. 아래에서 볼 수 있는 포장에 의해$PSVersionTable.PSVersion
에서 스크립트 블록고 실행되는 코드에서 원격 컴퓨터,반환합니다.
요약
이 블로그 포스팅,당신은 배의 모든 방법으로 버전을 확인하 PowerShell 로컬 및 원격으로., 처음 몇 가지 방법이 버전을 확인하지 않는 방법에 대한 아이디어를 주었기를 바랍니다!
항상$PSVersionTable.PSVersion
를 사용하는 것이 좋습니다. 다른 모든 방법은 PowerShell 엔진 버전과 유사하게 나타날 수 있지만 항상 엔진 버전을 반영하지는 않을 수 있습니다.피>