当前位置: 首页 > 编程笔记 >

使用HTTP api简单的远程执行PowerShell脚本

滑乐逸
2023-03-14
本文向大家介绍使用HTTP api简单的远程执行PowerShell脚本,包括了使用HTTP api简单的远程执行PowerShell脚本的使用技巧和注意事项,需要的朋友参考一下

可能有些情况下,你不想完全体验通过PSRP(PowerShell远程处理协议)远程管理,或有需要从非Windows系统上执行一些PowerShell脚本。你可能会像我很久之前在这篇文章中写的那样直接基于WS-Man来写代码。但是那样很复杂,并且需要WS-Man和SOAP的一些知识。

我在PowerShell脚本中使用.Net HttpListener类写了个HTTP监听器。你可以非常简单地启动一个监听器的实例(需要提升权限监听网络),现在你可以执行任意的PowerShell命令了,它还可以返回多种格式的执行结果。
一旦你安装了这个组件(只需要拷贝它到Documents\WindowsPowerShell\Modules 文件夹),并且导入,你就可以通过Start-HTTPListener启动一个实例。

默认我让它监听在8888端口,集成了Windows验证,但是仍然可以在参数中配置。这里我打开了另一个PowerShell窗口,并执行了“get-process powershell”

注意我使用 –UseDefaultCredentials来确保使用我的当前安全上下文来验证,否则你会被告知匿名访问不支持。

默认情况下,我返回JSON格式的输出。因为所得到的JSON对象是很大的,它会被截断。 HTTP响应的body是在内容属性,但是它是一个字节数组。我使用UTF8 .NET类进行解码并显示部分JSON数据:

我可以使用ConvertFrom-JSON的,使之在PowerShell中更像模像样:

当然,如果你使用的是不同的客户端脚本如Python,Perl或Ruby的,那么你可以在这些语言中调用脚本库使用JSON的版本。

如果你只是玩玩而已,你可以用文本格式,使事情变得更加简单易读,就像直接在PowerShell中执行相同的命令行:

其他格式可供选择,如果你调用HTTP端点不带任何参数,你会得到基本的用法信息反馈:

 类似资料:
  • 问题内容: 我正在尝试从Jenkins运行PowerShell脚本,但是它似乎完全忽略了执行策略!通过直接执行powershell.exe或使用PowerShell插件来实现 附加信息: Jenkins作为Windows服务运行(使用本地系统帐户,非交互式)。连接到该服务器并检查执行策略确实是: 但是,在运行Jenkins构建时,情况并非如此。这是在构建步骤中执行的输出: 我还尝试从构建步骤明确设

  • 问题内容: 我一直在网上和Stackoverflow上浏览,但是没有找到这个问题的答案。您将如何从Node.js执行Powershell脚本?该脚本与Node.js实例位于同一服务器上。 问题答案: 您可以仅生成一个子进程“ powershell.exe”,并侦听stdout的命令输出和stderr的错误:

  • 问题内容: 如何从“脚本” 执行PowerShell ps1脚本? 我知道如何在package.json“ scripts”中设置基本脚本。例如,使用以下配置,我可以执行该命令,该命令将向控制台输出“这仅仅是测试”: 但是,我有一个更高级的场景,我想执行一个PowerShell脚本。像这样: 我可以通过scripts对象执行这样的ps1脚本吗?是否需要任何特殊的设置/配置?还有其他限制吗? 问题答

  • 我正在使用PyCharm在SSH服务器上进行python的远程部署和执行。但是,我也希望能够以同样的方式直接运行其他文件。例如,我想通过sbatc“运行”一个“job.run”脚本,将其提交给HPC服务器。 我可以看到PyCharm为python运行以下类型的命令 我想有另一个名为“job.run”的文件,运行如下 这感觉应该很简单,但是我找不到任何允许我这么做的选项。

  • 本文向大家介绍简单的远程FTP定时备份Shell脚本分享,包括了简单的远程FTP定时备份Shell脚本分享的使用技巧和注意事项,需要的朋友参考一下 先说问题.公司现在有2台服务器,都是centos系统,一台本地(局域网),一台则在电信机房.因为工作需要,每天备份机房上的数据到本地,以前一直是FTP登录,然后下载到本地机器.现在则希望,利用本地的centos机器,自动备份到本地. 解决方法如下: 1

  • 问题内容: 我想使用Python连接到远程服务器并在其上执行一个过程。我希望能够获得该过程的返回码和stderr(如果有)。以前有没有人做过这样的事情。我已经用ssh完成了,但是我想从Python脚本中完成。 干杯。 问题答案: 好吧,您可以从python调用ssh …