execute/invoke 使用 winrm 的本地 ps1 文件

execute/invoke a local ps1 file using winrm

这个问题我已经好几天了。完成并研究了与使用 winrm 在本地计算机上执行 powershell 脚本有关的所有内容。

我的目标是从本地到目标远程机器执行这些 ps1 脚本。 winrm 已经配置好并使用它的基本命令,但我找不到 运行 使用 winrm 的 powershell 脚本 (*.ps1) 的任何内容。

类似于

winrm {execute ps1 file} -r:http://<IPaddress>:5985 -auth:basic -u:'username' -p:'password' -encoding:utf-8

非常感谢任何帮助和建议。

谢谢大家!

首先 - 我相信你正在尝试使用 winrs 而不是 winrm - 后者通常用于配置 winrm,前者用于 运行 远程命令。

考虑到这个假设:我很确定您必须将脚本传递给 powershell.exe 并注意转义命令元素。对我有用的示例(不是基本身份验证,但我认为无关紧要):

winrs -r:ComputerName powershell -file c:\temp\test.ps1
winrs -r:ComputerName powershell -file "c:\temp\test with space.ps1"

我猜为什么会有人想要那样做是不同的。要求您前往的任何充分理由: powershell -> 本机命令 -> cmd.exe 远程和 -> 远程调用 PowerShell ?

这样做你松了:

  • 任何合理的输出(你得到文本)
  • 在脚本 运行
  • 之后保持状态
  • 性能(每次调用都会产生新的 powershell 实例

你获得:

  • 复杂性