【问题标题】:power shell invoking get-VHD on a remote computerpowershell 在远程计算机上调用 get-VHD
【发布时间】:2020-08-20 20:09:03
【问题描述】:

我有一个用于运行 powershell 脚本的 hyperV 服务器,其中一个 cmdlet 是 Get-VHD -Path "\\SERVER-A\folder\UVHD-profile.vhdx" 它试图从远程服务器A(这是所有 VHDX 文件的位置)获取有关 VHDX 文件的信息。

如果在 hyperV 服务器上本地运行(上述)命令,它会成功运行。

我现在想从另一个 serverB 运行脚本,但 get-vhd cmdlet 需要正常安装 hyperV(不仅是 Powershell 模块),因此我需要使用 Invoke-Command 运行它。所以我在远程服务器B上运行这个命令:

Invoke-Command -ComputerName hyperV -ScriptBlock {Get-VHD -Path "\\SERVER-A\folder\UVHD-profile.vhdx"} 但我收到一条错误消息,提示路径不存在(即使路径存在 - 我复制粘贴了它)。

有趣的是,当我将 VHDX 文件从远程服务器 A 复制到 hyperV 服务器并从服务器 B 运行此命令时:

Invoke-Command -ComputerName hyperV -ScriptBlock {Get-VHD -Path "C:\user\desktop\UVHD-profile.vhdx"}

它工作正常。当您使用Invoke-command时,似乎不允许将get-vhd与UNC路径一起使用

有人知道如何克服这个问题吗?我错过了什么吗?

提前致谢。

【问题讨论】:

  • 你能调用其他命令到ServerA吗?可能是 WinRM 问题。
  • 是的,我可以。来自 hyperV 服务器和服务器 B

标签: powershell


【解决方案1】:

这通常称为双跳问题。本质上,您是从计算机 A 跳到计算机 B,然后到计算机 C,并且身份验证不会从 B 传递到 C。

Microsoft Documentation article 更详细地描述了该问题并列出了解决该问题的几种方法。

【讨论】:

  • 谢谢。那明确的开辟了一个新的供我研究和学习的地方。我什至没有意识到这一点。最重要的是,我在脚本块之后使用 -ConfigurationName 并使用 -ArgumentList 使用一些参数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 2014-07-26
  • 1970-01-01
  • 2012-04-14
  • 2017-05-21
  • 1970-01-01
相关资源
最近更新 更多