차이

2017-11-08 21 views
5

요약 PowerShell을 모듈 매니페스트의 차이는 PowerShellVersionPowerShellHostVersion 값 무슨차이

?

롱 버전

이 모듈에 필요한 PowerShell에서의 최소 버전, 또한 필요한 PowerShell을 호스트의 최소 버전 모두에 대한 설정이 있습니다 매니페스트 새 모듈을 생성. (NB : 올바른 값 모두가 자신의 부 버전/아니오 빌드 또는 개정 번호 0 설정이 있기 때문에 주 버전 관련된다) 즉

New-ModuleManifest -Path '.\MyModule.psd1' -PowerShellVersion '5.0' -PowerShellHostVersion '2.0'

PowerShellVersion$PSVersionTable.PSVersion.Major에 관한 것이다.

PowerShellHostVersion은 분명하지 않습니다. 내 믿음은 $Host.Version (즉 과 관련된 PowerShellHostName)에 관한 것입니다. 그러나, 내 경험에 의하면 ISE (Windows PowerShell ISE Host)와 ConsoleHost은 버전 번호가 PS 버전과 일치합니다. 그래서 예에서 암시 된 것처럼 PS 버전과의 동기화가 필요하지 않는 것은 이상한 것처럼 보입니다. 희소 한 사용 사례에 대해 거의 사용되지 않는 매개 변수입니다. 그러나 이것이 내가 무엇인지에 대해 정확히 이해했는지와 적용 가능한 공통 시나리오가 있는지 확인하고자합니다. MSDN's documentation

예시 값 (즉 자체 의미 파라미터 명보다 더 많은 정보를 부가하지)을 Official Documentation 단지 원형 설명을 제공

(PowershellHostVersion2.0을 얻는 동안, 즉 PowershellVersion5.0 주어진다) 다르다.

+2

PowerShell 5.1부터 PowerShell 원격 호스트의 버전은 1.0입니다. – PetSerAl

+1

@ PetSerAI의 의견 :'Enter-PSSession -ComputerName .''$ Host.Version'을 실행하여 재현했습니다. 호스트 이름은'ServerRemoteHost'입니다. '$ PSVersionTable'은 예상대로'5.1.14409.1012'를 제공합니다. – JohnLBevan

+0

'pushd "% psmodulepath %"와'for/F "모두에서'findstr/I/S/R"호스트. * 버전 호스트. * (승격 된 명령 프롬프트의) * .psd1'을 실행하십시오. delims = " % G in ('where powershell.exe')은 pushd "% ~ dpG"'폴더를 수행합니다. 유용한 'PowerShellHostVersion' 모양을 찾을 수 없습니다. 그래서, ** 왜 ** 당신의 모듈에 그것을 설치하고 싶습니까? – JosefZ

답변

0

My belief is that this relates to $Host.Version

귀하의 신념은 정확합니다. PowerShellHostVersion의 값을 6.0으로 설정하는 매니페스트를 수정하여이를 테스트했습니다. 가져올 때 오류 얻을 : $Host.Version 관련

Import-Module : The current Windows PowerShell host is: 'ConsoleHost' (version 
5.1.15063.674). The module 'C:\MyModule.psd1' requires a minimum Windows PowerShell 
host version of '6.0' to run. 
At line:1 char:1 
+ Import-Module .\MyModule.psd1 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : ResourceUnavailable: (C:\MyModule.psd1:String) [Import-M 
    odule], InvalidOperationException 
    + FullyQualifiedErrorId : Modules_InsufficientPowerShellHostVersion,Microsoft.PowerShel 
    l.Commands.ImportModuleCommand 

버전, 이름은 흥미로운 역사를주는 2010 년부터 $Host.Name

PS C:\> $Host.Version 

Major Minor Build Revision 
----- ----- ----- -------- 
5  1  15063 674 

This Shavy Levy blog post 및 링크 된 PowerShell Team follow up에 관한 것이다. 내 컴퓨터에서 콘솔 및 ISE 호스트의 $Host.Version에 대해 동일한 출력을 얻습니다.
Power GUI 및 언급 된 다른 호스트가 사용하는 버전에 대한 단서가 없습니다.