0

PowerShell フレームワークをバージョン 3.0 にアップグレードする方法を調査中です。現在、Windows 2008R2 サーバーで 2.0 用に記述された多くのスクリプトがあります。簡単に回避できる問題をいくつか見つけていますが、PowerShell 3.0 および dotnet 4.0 フレームワークで実行されている Expand-Archive コマンドレットで少し楽しいことを発見しました。

ここCodePlexを見ると、次のコメントが表示されます

さらに調査したところ、Expand-Archive コマンドは、64 ビットの PowerShell セッションで実行している場合、dotnetframework 4.0 と互換性がありません。このコマンドを dotnet Framework 4.0 で実行するには、モジュールを次の場所にインポートする必要があります。

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules\Pscx 

Then the 32 bit powershell.exe can be invoked and the Expand-Archive command 
will run properly. This fix applies to windows 2008 R2 64 bit

Expand Archive を Zip ファイルでローカルに動作させることができましたが、別の PowerShell 3.0 環境からリモート処理すると、次のエラーが発生します。

Expand-IHIArchive : Microsoft.PowerShell.Commands.WriteErrorException: Expand-IHIArchive:: Expand-Archive で次のパラメーターを使用してエラーが発生しました: FlattenPaths = False ; LiteralPath = \Deploys\Packages\POWERSHELL3\CodeReleasePackage.zip ; OutputPath =\Deploys\Packages\POWERSHELL3 ; パススルー = 真 ::

これを機能させる方法はありますか?または、少なくとも問題が何であるかをリモートから把握しますか?

4

1 に答える 1

0

これを回避するには、すべての PSCX ディレクトリを自分の PowerShell のコピーにローカルに配置することで、ロード時にモジュールを環境に追加しました。基本的に、PowerShell のバージョンに応じて、必要な PSCX モジュールをロードします。これにより、適切なバージョンを制御し、中央にインストールされたモジュールについて心配することなく、モジュールが適切にロードされていることを確認できます。このようにして、すべてを好きな構造にパッケージ化することで、環境を簡単にセットアップできます。

これにより、Expand-Archive の問題を回避できました。

于 2013-11-26T14:54:51.137 に答える