Get-Help cmdlet无法使用隐式远程处理

时间:2017-02-15 16:26:24

标签: powershell

要点: 我有几个函数放在为隐式远程处理而构建的远程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

1 个答案:

答案 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>