0

我正在研究将我们的 PowerShell 框架升级到 3.0 版;我们目前在 Windows 2008R2 服务器上为 2.0 编写了许多脚本。我发现了一些可以轻松解决的问题,但我发现在 PowerShell 3.0 和 dotnet 4.0 框架下运行的 Expand-Archive cmdlet 很有趣。

在CodePlex上查看这里我看到以下评论

经过进一步调查,在 64 位 powershell 会话中运行时,Expand-Archive 命令与 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

我已经能够让扩展存档在 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 模块。这使我可以控制正确的版本,并确保模块正确加载,而无需担心集中安装的模块,这样我可以通过将所有内容打包成我喜欢的结构来更轻松地设置我的环境。

这让我克服了展开存档问题。

于 2013-11-26T14:54:51.137 回答