我的脚本使用 Powershell splitpipeline模块,带来并行进程和队列功能。
脚本和模块存储在共享服务器上,例如\server\c$ ,这个想法是能够从任何计算机上运行它。
试图放在脚本的开头 import-module \\server\c$\SplitPipeline
但我收到错误:
import-module : Could not load file or assembly 'file://\\server\c$\SplitPipeline\SplitPipeline.dll' or one of its dependencies.
Operation is not supported. (Exception from HRESULT: 0x80131515)
At D:\scripts\powershell\OstReport_BETA-PIPE.ps1:6 char:1
+ import-module \\server\c$\SplitPipeline
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], FileLoadException
+ FullyQualifiedErrorId : FormatXmlUpdateException,Microsoft.PowerShell.Commands.ImportModuleCommand
如果我尝试将其从 srv 复制到 pc:
Copy-Item -Path \\server\c$\SplitPipeline -Destination C:\windows\system32\WindowsPowerShell\v1.0\Modules -recurse -force
我被拒绝访问
有任何想法吗?
谢谢
最佳答案
您遇到的问题是 .NET 程序集无法从不受信任的 UNC 路径加载,无需特殊配置。正如您已经发现的那样,最简单的解决方案是首先将模块复制到本地计算机。
要解决“拒绝访问”消息,请将模块复制到您的用户目录,而不是系统范围的目录。
c:\users\<username>\Documents\WindowsPowerShell\Modules
您需要“以管理员身份”运行 PowerShell 才能获得复制到系统文件夹的权限,但通常建议不要修改默认系统目录。相反,将模块复制到您的用户文件夹(如上)。
关于powershell - 如何从共享服务器导入 splitpipeline 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558789/