Powershell.exe (v 2.0) 경로


114

Powershell (버전 2.0)은 어디에 있습니까? Powershell.exe의 경로는 무엇입니까? Windows Server 2008과 Powershell이 ​​설치되어 있습니다. 이 폴더를 보면 :

PS C:\Windows\System32\WindowsPowerShell> dir


    Directory: C:\Windows\System32\WindowsPowerShell


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         20.4.2010     17:09            v1.0

Powershell v1.0 만 있습니다. 하지만 내가 입력 할 때

PS C:\> $Host.version

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


PS C:\>

v2.0이 설치되어 있음을 보여줍니다.


8
위에 표시된 "v1.0"은 실제 버전 번호가 아닌 디렉토리 이름입니다.
doobop

PowerShell 링크의 대상 위치를보십시오
oxfn

답변:


170

나는 그것이 C:\Windows\System32\WindowsPowershell\v1.0\. 무고한 사람을 혼동하기 위해 MS는 "v1.0"이라는 이름의 디렉토리에 보관했습니다. Windows 7에서 실행하고 $Host.Version( 설치된 PowerShell 버전 확인)을 통해 버전 번호를 확인하면 2.0으로 표시됩니다.

또 다른 옵션은 $PSVersionTable명령 프롬프트에서 입력 하는 것입니다. v2.0을 실행중인 경우 출력은 다음과 같습니다.

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

버전 1.0을 실행하는 경우 변수가 존재하지 않으며 출력도 없습니다.

지역화 PowerShell 버전 1.0, 2.0, 3.0, 4.0 :

  • 64 비트 버전 : C : \ Windows \ System32 \ WindowsPowerShell \ v1.0 \
  • 32 비트 버전 : C : \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \

1
호환성을 유지하고 싶었던 하드 코딩 된 경로의 경우일까요? Microsoft는 Microsoft
Tiago Leite

5
"순진한 사람을 혼동하기 위해"는 내가 가장 좋아하는 인용구 중 하나가 될 것입니다.
simlev

47

$ PsHome에 당신이 원하는 정보가있는 것 같아요?

PS.> $ PsHome
C : \ Windows \ System32 \ WindowsPowerShell \ v1.0

PS.> Get-Help about_automatic_variables

이야기
    about_Automatic_Variables ...


29

여기에 한 가지 방법이 있습니다 ...

(Get-Process powershell | select -First 1).Path

명령 프롬프트에서 Powershell을 실행 한 것처럼 경로에서 첫 번째 히트를 반환하므로 더 나은 방법이 있습니다.

(Get-Command powershell.exe).Definition

3
제가 아는 한, 이것은 현재 35 명까지 투표 한 것보다 더 나은 대답입니다. 원래 질문은 실행 파일의 경로에 관한 것으로 보였으며, 버전 정보는 질문에 부수적 인 것입니다. 이 대답은 그 질문을 직접적으로 해결하여 "있을 것으로 예상되는"대답조차 무시하고 시스템이 기본값과 다르더라도 exe가 자신의 시스템에서 정확히 어디에 있는지 알 수 있도록합니다. (이것이 제가 여기에서 찾고있는 것이므로 감사합니다.)
Todd Walton

powershell.exe다른 실행 파일의 이름을으로 쉽게 바꿀 수 있고 powershell.exe대신 해당 프로세스를 선택 하도록 할 수 있으므로 실행 파일을 기반으로 검색 하는 것은 약간 느슨 합니다. Get-Process -Id $PID어떤 버전 $PID이 도입 되었는지 확실하지 않지만 작동합니다 .
Charles Grunwald

그러나 $ PID를 사용하면 Powershell 인터프리터가 아닐 수있는 현재 호스트가 반환됩니다. 예를 들어 Powershell_ise.exe와 같습니다.
Nathan Hartley

2011 년 11 월 이후로 속성이 변경되었을 수 있습니다. 나를 위해 (2016 년 7 월, Windows Server 2012 사용) .Source 속성이 존재하지 않습니다. 대신 "C : \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe"를 반환하는 속성 .Definition을 사용할 수 있습니다. . 내 $ PSHome 변수에는 다음이 포함됩니다. "C : \ Windows \ System32 \ WindowsPowerShell \ v1.0"또한 get-process를 사용하는 경우 powershell_ise를 사용하는 경우 powershell 대신 'powershell *'을 사용하는 것이 좋습니다. HTH
Marcelo Finki

.Source 사용에서 .Definition으로 답변을 변경했습니다.
Nathan Hartley

12

항상 C : \ Windows \ System32 \ WindowsPowershell \ v1.0입니다. 이전 버전과의 호환성을 위해 내가 어딘가에서 듣거나 읽은 것처럼 남겨졌습니다.


2
% SystemRoot % \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe. SystemRoot가 "C : \ Windows"가 아닌 경우
Matthew
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.