当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 关于远程

作者:精品下载站 日期:2024-12-14 02:19:19 浏览:15 分类:玩电脑

关于远程


简短描述

描述如何在 PowerShell 中运行远程命令。

详细描述

您可以使用临时或持久连接在一台或多台远程计算机上运行远程命令。您还可以启动与一台远程计算机的交互式会话。

笔记

要使用 PowerShell 远程处理,您必须配置本地和远程计算机以进行远程处理。有关详细信息,请参阅 about_Remote_Requirements。

如何开始交互式会话

运行远程命令的最简单方法是启动与远程计算机的交互式会话。

当会话启动时,您键入的命令将在远程计算机上运行,就像您直接在远程计算机上键入它们一样。在每个交互式会话中您只能连接到一台计算机。

要启动交互式会话,请使用 Enter-PSSession cmdlet。以下命令启动与 Server01 计算机的交互式会话:

Enter-PSSession Server01

PowerShell 更改命令提示符以包含远程计算机的名称。

Server01\PS>

现在,您可以在 Server01 计算机上键入命令。

要结束交互式会话,请键入:

Exit-PSSession

有关详细信息,请参阅 Enter-PSSession。

如何运行远程命令

要在远程计算机上运行其他命令,请使用 Invoke-Command cmdlet。

要运行单个命令或几个不相关的命令,请使用 Invoke-CommandComputerName 参数指定远程计算机。使用ScriptBlock参数指定命令。

例如,以下命令在 Server01 计算机上运行 Get-Culture 命令。

Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}

如何创建持久连接

当您使用 Invoke-Command cmdlet 的 ComputerName 参数时,PowerShell 会建立与远程计算机的临时连接。命令完成后它会关闭连接。在此临时会话中定义的任何变量或函数都将丢失。

要创建与远程计算机的持久连接,请使用 New-PSSession cmdlet。例如,以下命令在 Server01 和 Server02 计算机上创建 PSSession,然后将 PSSession 保存在 $s 变量中。

$s = New-PSSession -ComputerName Server01, Server02

如何在 PSSession 中运行命令

通过 PSSession,您可以运行一系列共享数据的远程命令,例如函数、别名和变量值。要在 PSSession 中运行命令,请使用 Invoke-Command cmdlet 的 Session 参数。

例如,以下命令使用 Invoke-Command cmdlet 在 Server01 和 Server02 计算机上的 PSSession 中运行 Get-Process 命令。该命令将进程保存在每个 PSSession 的 $p 变量中。

Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}

由于 PSSession 使用持久连接,因此您可以在同一 PSSession 中运行另一个使用 $p 变量的命令。以下命令计算 $p 中保存的进程数。

Invoke-Command -Session $s -ScriptBlock {$p.count}

如何在多台计算机上运行远程命令

要在多台计算机上运行远程命令,请在 Invoke-CommandComputerName 参数值中键入所有计算机名称。用逗号分隔名称。

例如,以下命令在三台计算机上运行 Get-Culture 命令:

Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}

您还可以在多个 PSSession 中运行命令。以下命令在 Server01、Server02 和 Server03 计算机上创建 PSSession,然后在每个 PSSession 中运行 Get-Culture 命令。

$s = New-PSSession -ComputerName S1, S2, S3
Invoke-Command -Session $s -ScriptBlock {Get-Culture}

要包含本地计算机列表,请键入本地计算机的名称、键入点 (.) 或键入 localhost

Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}

如何在远程计算机上运行脚本

要在远程计算机上运行本地脚本,请使用 Invoke-CommandFilePath 参数。您不需要复制任何文件。例如,以下命令在 S1 和 S2 计算机上运行 Sample.ps1 脚本:

Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1

PowerShell 将脚本的结果返回到本地计算机。

如何停止远程命令

要中断命令,请按 Ctrl+c。 PowerShell 将中断请求传递到远程计算机,并在其中终止远程命令。

欲了解更多信息

  • 有关远程处理的系统要求的信息,请参阅 about_Remote_Requirements。

  • 有关格式化远程输出的帮助,请参阅 about_Remote_Output。

  • 有关远程处理的工作原理、如何管理远程数据、特殊配置、安全问题和其他常见问题的信息,请参阅 PowerShell 远程处理常见问题解答。

  • 有关解决远程处理错误的帮助,请参阅 about_Remote_Troubleshooting。

  • 有关 PSSession 和持久连接的信息,请参阅 about_PSSessions。

  • 有关 PowerShell 后台作业的信息,请参阅 about_Jobs。

参见

  • about_Remote_Disconnected_Sessions
  • about_Remote_Variables
  • Invoke-Command
  • 输入-PSSession
  • 新 PS 会话

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯