PowerShell Invoke-Command

2024 年 8 月 29 日 | 5 分钟阅读

PowerShell 中的 Invoke-Command cmdlet 在本地和远程计算机上执行命令,并返回来自命令的输出以及错误。

我们也可以在本地计算机上使用此 cmdlet 来将脚本块作为命令。

语法












参数

-ScriptBlock

此参数是必需的,它指定要执行的命令。 当我们创建一个脚本块时,我们需要用大括号 {} 括起命令。

-NoNewScope

它是在 PowerShell 3.0 中引入的,用于标识此 cmdlet 在当前作用域中执行给定的命令。 默认情况下,invoke-command 在其自身的作用域中执行命令。

-InputObject

此参数指定命令的输入。 当我们在命令中使用此参数时,我们需要在 -ScriptBlock 参数的值中使用 $Input 自动变量来表示输入对象。

-ArgumentList

此参数按命令中列出的相同顺序提供本地变量值。 您必须使用以下格式在命令中使用本地变量

-Session

此参数指定 invoke-command 在其中执行命令的会话数组。

-FilePath

此参数指定本地脚本的路径或文件名,invoke-command 在一台或多台远程计算机上执行该脚本。 如果您使用此参数,PowerShell 会将给定脚本文件的内容转换为脚本块,然后将其传输到远程计算机以供执行。

-ThrottleLimit

此参数显示建立以执行 invoke-command 的最大并发连接数。 它仅适用于当前命令,而不适用于计算机或会话。

-AsJob

如果您使用此参数,invoke-command 会在远程计算机上将命令作为后台作业执行。

-HideComputerName

此参数从输出显示中省略每个对象的计算机名称。 它不会更改对象,但只会影响输出显示。

-JobName

此参数指定后台作业的友好名称。 当在命令中使用此参数时,该命令将作为作业执行,并且 Invoke-command 返回作业对象。

-ComputerName

此参数指定命令在其上执行的计算机。 默认值为本地计算机。 当我们使用此参数时,PowerShell 会创建一个临时连接,该连接仅用于执行命令。 如果您需要永久连接,请使用 -Session 参数。

-Credential

此参数允许用户帐户执行此操作。 默认值为当前用户。

-Port

Invoke-Command 使用 -Port 参数来定义远程计算机上的网络端口,该端口用于 Invoke-Command

-UseSSL

Invoke-Command 使用 -UseSSL 参数来建立与使用 SSL 协议的远程计算机的连接。 这是一种额外的保护措施,它通过 HTTPS 而不是 HTTP 发送数据。

-ConfigurationName

Invoke-Command 使用 -ConfigurationName 参数来指定用于新 PSSession 的会话配置。

-ApplicationName

Invoke-command 使用此参数来标识连接 URI 的应用程序的名称段。 如果您未在命令中使用 -ConnectionURI 参数,请使用它。

-InDisconnectedSession

Invoke-command 使用此参数在断开连接的会话中执行命令或脚本。 当您使用此参数时,invoke-command 会在每台远程计算机上创建永久会话,并启动由 -FilePath 参数指定的命令,然后与该会话断开连接。

-SessionName

此参数用于为断开连接的会话指定一个友好名称。 它仅对 -InDisconnectedSession 参数有效。

-SessionOption

-SessionOption 参数用于此命令中,以指定会话的高级选项。

-Authentication

此参数用于指定用于验证用户凭据的机制。 以下是此参数的可接受值

  • Default(这是一个默认值)
  • Kerberos
  • 谈判
  • 基本功能
  • Digest
  • NegotiateWithImplicitCredential
  • Credssp

-EnableNetworkAccess

在此 cmdlet 中使用此参数以将交互式安全令牌包含到环回会话中。

-CertificateThumbprint

此参数用于指定具有连接到断开连接的会话的权限的用户帐户的公钥证书。

-ConnectionUri

此参数用于指定统一资源标识符 (URI),该标识符定义会话的连接终结点。 如果未在命令中指定 ConnectionUri,请使用 -Port 和 UseSSL 参数来指定连接 URI 的值。

-AllowRedirection

此参数允许将此连接重定向到备用 URI。 当我们在命令中使用 -ConnectionURI 参数时,远程目标可以返回将重定向到不同 URI 的指令。 但是我们使用此参数来允许它重定向连接。

-VMId

此参数用于 Invoke-Command 以指定虚拟机 ID 数组。

-VMName

此参数用于 Invoke-Command 以指定虚拟机的名称数组。

-ContainerId

此参数用于指定容器 ID 数组。

-RunAsAdministrator

Invoke-Command 中使用此参数以管理员身份调用命令。


下一个主题PowerShell Get-Help