要点: 我有几个函数放在为隐式远程处理而构建的远程Windows服务器上。但是,我无法使用Get-Help cmdlet显示我在我创建的每个函数中添加的概要,因此这些是 不 本机PowerShell cmdlet。 get-help cmdlet可以正常运行,脚本在本地运行。
问题: 是否无法使用隐式远程处理的Get-Help?
编辑1。
尝试贿赂者修复
PS> $module = Import-Module 'tmp_2c0mhyix.ivb' -PSSession $sessVar -PassThru
Import-Module : Failure from remote command: Import-Module -Name 'tmp_2c0mhyix.ivb': The specified module 'tmp_2c0mhyix.ivb' was not loaded because no valid module file was found in any module directory.
At line:1 char:11
+ $module = Import-Module 'tmp_2c0mhyix.ivb' -PSSession $sessVar-Pa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (tmp_2c0mhyix.ivb:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
也尝试了这个模块名称。
PS> $module = Import-Module -PSSession $sessVar-PassThru
Import-Module : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:11
+ $module = Import-Module -PSSession $sessVar-PassThru
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Import-Module], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.ImportModuleCommand
答案 0 :(得分:1)
隐性遥控是一种奇怪的野兽。它在临时模块中创建代理函数,它是在本地调用的代理函数。
致电Import-PSSession
后,请致电Get-Module
,您会看到一个名字很奇怪的人。
或者,您可以使用此方法$module = Import-Module -PSSession $mySession -PassThru
最初导入模块,以便在变量中返回模块。
然后您可以致电Get-Command -Module $module
查看功能,但请查看定义:
Get-Command -Module $module | Select-Object -First 1 -ExpandProperty Definition
Shay Levy goes into detail about proxy functions here,您可以看到它们确实包含Get-Help
的说明,以便它可以找到正确的帮助主题,但是当命令位于远程控制的另一端时,我不会认为那些会起作用。
我不知道我是否尝试过使用这种方式导入的函数的帮助,所以也许它确实有效,而且它只是你发现的一个bug,但我觉得这些信息仍然有用。< / p>