【问题标题】:Get-Help cmdlet not working with implicit remotingGet-Help cmdlet 不适用于隐式远程处理
【发布时间】:2017-02-16 01:13:01
【问题描述】:

总结: 我有几个功能放置在为隐式远程处理而构建的远程 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

【问题讨论】:

  • 如果你有模块名称,你不需要重新导入它,只需将它与Get-Command一起使用即可。此外,我并不是要暗示这些命令会修复任何问题(它们不会),只是为了让您了解隐式远程处理的实现方式。

标签: powershell


【解决方案1】:

隐式远程处理是一种奇怪的野兽。它在临时模块中创建代理函数,并且是在本地调用的代理函数。

调用Import-PSSession 后,再调用Get-Module,你会看到一个奇怪的tmp 名称。

或者,您可以最初使用此方法$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 的说明,以便它可以找到正确的帮助主题,但是当命令位于远程处理的另一端时,我认为这些不会工作。

我不知道我是否曾经尝试过对以这种方式导入的函数使用帮助,所以也许它确实有效,这只是你发现的一个错误,但我觉得这些信息仍然会有所帮助。

【讨论】:

  • 嗨,布赖恩,我正在关注您的指南。我找到了 tmp 文件,我运行了你的命令,我看到了一些错误,我将把这些错误放入问题中以便于阅读。
  • 这是个好东西,我要稍微改变一下远程处理的方式。使用 import-pssession 似乎比我使用的导出对应物快得多。
  • 我相信这是最好的答案。尽管没有完美的解决方案,但这使我找到了更好的解决方案,并为我的用户提供了更有效的 ps 会话。再次感谢伙计。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多