0

在我的环境中,我有一个可以访问几乎整个网络的服务器。该服务器运行的是 Windows 2008 r2,我已将 Powershell 升级到 4.0 版。我的问题是……我可以在其他特定于版本 4 的机器上从该机器运行 cmdlet 吗?

例如,当我使用 Powershell 时,即使它是第 4 版,它也不会像在 2012 r2 机器上那样为“Get-Volume”提供智能感知自动完成功能。我知道它不会在那台机器上运行,因为基础设施不允许它,但是远程 2012 r2 机器呢?

我希望从那里运行批处理脚本用于各种目的。

4

2 回答 2

2

您示例中的 Get-Volume 仅适用于 Windows Server 2012 及更高版本。因此,它不会在 2008 R2 系统上自动完成。您可以使用 PowerShell隐式远程处理

使用隐式远程处理,您可以将远程系统中的所有 cmdlet 导入本地会话,并像在本地系统上一样使用它们。

于 2014-06-12T15:18:32.317 回答
2

首先,这可能是一个服务器故障问题,因为它与服务器管理有关。

安装在 2008 R2 上的 PowerShell 4.0 无法在 2012 R2 机器上运行 2012 cmdlet Get-Volume -ComputerName My2012Server,因为 cmdlet 在您的 2008 R2 机器上不存在。但是,您应该能够在 2012 R2 服务器上调用 cmdlet,例如:

Invoke-Command -ComputerName My2012Server -Scriptblock { Get-Volume }

请注意,您在编写它时不会获得自动完成支持,因为您的 2008 R2 服务器上没有安装命令和帮助文件

Import-PSSession如果您要以交互方式运行命令,也是一种可能性。对于脚本,我可能仍会使用Invoke-Command.

于 2014-06-12T15:21:20.953 回答