Fark

2017-11-08 102 views
5

Özeti PowerShell Modülü Manifest arasındaki fark PowerShellVersion ve PowerShellHostVersion değerleri NelerFark

?

Uzun Versiyon

bu modül için gereken PowerShell minimum sürümü ve ayrıca gerekli PowerShell Host asgari sürümü ikisi için ayarlar vardır manifestosunda yeni bir modül oluşturmak. (Not: Geçerli değerler tüm alt sürüm/hayır yapı veya revizyon numaraları için 0 set beri büyük sürüm İlgili), yani

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

PowerShellVersion$PSVersionTable.PSVersion.Major ile ilgilidir. Açık olmadığımma ilişkin

PowerShellHostVersion. Benim inancım, bunun $Host.Version ($Host.Name ile ilgili PowerShellHostName ile ilgilidir) ile ilgili olmasıdır. Ancak, hem ISE (Windows PowerShell ISE Host) hem de ConsoleHost deneyimlerimde sürüm numaralarının PS sürümüyle aynı hizada olması; Bu nedenle, bu örnekte ima edilen PS sürümüyle senkronizasyonun sürmesini gerektirmek garip görünüyor. Umudum bu nadir kullanım durumları için nadiren kullanılan parametrelerdir; ancak bunların ne için doğru olduğunu ve uygun oldukları durumlarda ortak bir senaryo varsa anladığımdan emin olmak istiyorum. MSDN's documentation içinde

örnek değerlerine (yani, kendisi ima parametre adı fazla bilgi sağlar) Official Documentation sadece dairesel bilgi vermektedir

(PowershellHostVersion2.0 alır iken, yani PowershellVersion, 5.0 verilmiştir) farklıdır.

+2

PowerShell 5.1'in üzerinde, PowerShell uzak ana bilgisayar 1.0 sürümüne sahiptir. – PetSerAl

+1

@ PetSerAI'nin yorumuyla ilgili olarak: Çalışarak çoğaltılır: 'Enter-PSSession -ComputerName .'' $ Host.Version'. Ana bilgisayar adı "ServerRemoteHost". '$ PSVersionTable' hala beklendiği gibi' 5.1.14409.1012' verir. – JohnLBevan

+0

"findstr/I/S/R" Ana Bilgisayarını Çalıştır. * Sürüm Ana Bilgisayarı. * Ad "* .psd1" (yükseltilmiş komut isteminden) hem "pushd"% psmodulepath% "hem de" for/F "delims =" % G in ('powershell.exe'), "% ~ dpG" klasörlerini bastırır. Herhangi bir kullanışlı 'PowerShellHostVersion' görünümünü bulamıyorum. Peki, neden ** modülünüzde kurmak istiyorsun? – JosefZ

cevap

0

My belief is that this relates to $Host.Version

İnancınız doğrudur. Bunu, PowerShellHostVersion değerini 6.0 olarak ayarlamak için üretilen bildirimi değiştirerek test ettik. İçe aktarma sırasında hata alıyorum: $Host.Version ilişkin

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 

Sürüm ve ad ilginç bir geçmişi vermek 2010'dan $Host.Name

PS C:\> $Host.Version 

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

This Shavy Levy blog post ve bağlantılı PowerShell Team follow up ile ilgilidir. Makinemde, Console ve ISE ana bilgisayarlarından $Host.Version için aynı çıktıyı elde ediyorum.
Güç GUI'sinin ve belirtilen diğer ana bilgisayarların hangi sürümde kullanıldığına dair bir ipucu yok.