2010-11-23 8 views
4

Wikipediaによると、PowerShell 2.0はWindows 7で配布されました。私はWindows 7を使用するので、私は明らかにそのバージョンを使用しています。バージョン間のPowerShellインストールフォルダとスクリプトファイル拡張子

しかし、それは二つの質問提起:

  1. なぜその末尾v1.0とのPowerShellのフォルダC:\Windows\System32\WindowsPowerShell\v1.0が、それは実際にv2.0する必要がありますか?
  2. なぜPowerShellスクリプト拡張子.ps1ですか?バージョンが変更されたときにその拡張子が増えますか?

答えて

2

これは単純にPowershellチームの選択の結果です。彼らは、PowerShellのV2用に1.0ディレクトリと.ps1拡張子の両方を保持することに決めました。実際のPowershellのバージョンを確認する

最良の方法は、表現$PSVersionTable.PSVersion

C:\Users\jaredpar> $PSVersionTable.PSVersion 

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

ありがとうございました理由はありますが:) – poke

+0

@poke確かに私はこの決定について知りました。 – JaredPar

1

を使用することですそれはancient blog post(2007年)ですが、それはまだ適用されます。要するに: - $env:systemroot\System32\WindowsPowerShell\v1.0

  • 設置場所、$PSHOMEに反映 - :

    • 限り新しいPowerShellのバージョンが下位互換残るように、それらは以前のバージョンが置き換えられます同じままです。

    • ファイル名の拡張子は.ps1です。

  • 以前のバージョン用に作成されたスクリプトは引き続き実行されます。

  • は技術的スクリプト(の上部に#requires -version <n>を使用し、最小でバージョン <n> を必要としてスクリプトをマークするためには、スクリプト内の任意の場所を配置することができ、それが配置するセンス理にかなっていますそれは上部にあります)。

この記事の執筆時点では、v1以降の下位互換性が維持されているため、インストール先とファイル名の拡張子は同じです。


現在のセッションのPowerShellのバージョン取得:

より一般的に
> [string] $PSVersionTable.PSVersion 
5.1.14393.693 # PSv5.1 example 

$PSVersionTableハッシュテーブル、V2で導入し、(不完全)、バージョンいくつかの情報が含まれていGet-Help about_Automatic_Variablesで説明:

Name       Value                               
----       -----                               
PSVersion      5.1.14393.693 # The PowerShell version.                            
PSEdition      Desktop  # 'Desktop'=*Windows* PS; 'Core'=PS *Core*                             
PSCompatibleVersions   {1.0, 2.0, 3.0, 4.0...} # array of compatible versions                           
BuildVersion     10.0.14393.693 # OS version? only if it came natively                            
CLRVersion      4.0.30319.42000 # The .NET CLR version                            
WSManStackVersion    3.0    # WS-Management (WinRM) version                           
PSRemotingProtocolVersion  2.3    # remoting-protocol version                            
SerializationVersion   1.1.0.1   # serialization-protocol version                            
関連する問題