我有一个位于网络共享上的模块,我希望在远程会话期间加载到我网络上的其他服务器。
这是我的命令:
enter-pssession remoteserver
import-module \\shareserver\sharefolder\SPModule.misc
这是错误:
Import-Module : The specified module 'SPModule.misc' was not loaded because no valid module file was found in any module directory.
+ CategoryInfo : ResourceUnavailable: (SPModule.misc:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
模块是否无法从网络共享加载或我做错了什么?
由于
答案 0 :(得分:1)
(将其添加为答案,以便于查找。)
您需要使用CredSSP启用第二跳远程处理。
PowerShell 2.0 remoting guide: Part 12 – Using CredSSP for multi-hop authentication
答案 1 :(得分:0)
默认情况下,它会在PSModulePath环境变量中列出的任何路径中按名称查找模块。我知道你也可以提供绝对的路径,但我从未尝试过UNC。
也就是说,模块文件名以.psm1,.psd1或.dll结尾 - “。misc”不是有效的模块文件名。来自帮助:
Specifies the names of the modules to import. Enter the name of the module or the name of a file in the module, such as a .psd1, .psm1, .dll, or ps1 file. File paths are optional. Wildcards are not permitted. You can also pipe module names and file names to Import-Module.
If you omit a path, Import-Module looks for the module in the paths saved in the PSModulePath environment variable ($env:PSModulePath).
尝试将模块重命名为.psm1(如果它实际上是一个脚本模块)。
答案 2 :(得分:0)
创建PS会话并通过Kerberos进行身份验证时,该会话不支持双跳。因此,PS会话无法使用网络资源进行身份验证。
解决方案: 在Enter-PSSession命令的目标计算机上,运行以下命令:
> Enable-WSManCredSSP -Role Server
在运行Enter-PSSession命令的计算机上,运行以下命令:
> Enable-WSManCredSSP -Role Client -DelegateComputer Servername