在工作组环境中通过 WinRM 在目标机器上执行远程命令

在工作组环境中通过 WinRM 在目标机器上执行远程命令

我期待在我的本地网络(工作组,无域加入)中的目标机器上运行特殊命令。

这些机器之前已经配置了Enable-PSremoting等等,以容忍 Windows 远程管理,以便我们可以在目标机器上执行以下命令。

这些命令工作正常,但如果我想启动一些特殊命令(如start-process),它们就不会作为本地机器执行。

例如,如果我在本地机器上运行:

> Start-Process -Filepath "cmd.exe"

它启动 cmd 进程。如果我远程执行此操作,就像这样

Invoke-Command -Computername "my-target-ip" -ScriptBlock {Start-Process -Filepath "cmd.exe"} -Credential get-credential

目标机器上没有执行cmd窗口。

这将允许我在目标机器上安装一些特殊软件包,这些软件包需要一些自动 GUI 配置,而这些配置不能仅通过 powershell 进行,例如暂停更新和通过 GUI 设置标准浏览器应用程序。否则,一些常规配置可以正常工作(防火墙设置、写入文件、启用网络配置等)。

非常感谢。

答案1

Invoke-Command适用于非交互式命令。如果我没记错的话,使用它你不会得到交互式提示,当然,如果你想在远程计算机上启动一个程序,它应该在你启动之前就存在那里。

如果您想在远程计算机上使用交互式会话,您应该使用Enter-PSSession反而:

Enter-PSSession -Computer "remote" -Credential (Get-Credential)

如果您确实需要,您应该能够在此会话中启动 cmd 提示符。

如果您需要运行一些非交互式的相关命令,那么该New-PSSessioncmdlet 以及 可能会引起您的兴趣Invoke-Command -Session $session

相关内容