我的网络上有几台计算机,我想将所有PowerShell模块放在网络共享中,这样我就可以从任何计算机轻松访问它们。这适用于脚本模块,但二进制模块似乎不起作用。
Import-Module
语句可以正常执行而不会出现错误,但是当您使用Get-Module
时,它将显示新导入的二进制模块未导出任何Cmdlet。如果我将模块复制到计算机上的本地目录中,则一切都按预期工作。
有没有办法从网络位置导入二进制模块?
答案 0 :(得分:5)
抱歉,我知道这个问题已经过时了,但认为为PowerShell v3提供答案会很有用。我在PowerShell v3中遇到了同样的问题,并且使用Phil的答案能够解决它 - 只需稍作修改。
PowerShell v3已经使用.NET 4.0,所以我实际上只需要loadFromRemoteSources部分。所以我的$PSHOME\powershell.exe.config
看起来像这样:
<?xml version="1.0"?>
<configuration>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>
简单!感谢Phil提供的指示,请回复你的答案,但我还没有声誉。
答案 1 :(得分:0)
我发现加载PowerShell模块的最简单方法是将配置文件添加到$PSHOME
目录。
我在$PSHOME\powershell.exe.config
创建了一个文本文件,并将以下内容放在文件中:
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>
这有两件事: