HTTP 之上的 REST 和类 REST 接口近来非常流行。不久之前我们曾报道过,Oracle 发布了一个针对MySQL 的、基于HTTP 的API 原型。正式版本还没出来,微软的Steve Lee 就在“用于执行PowerShell 脚本的简单HTTP API ”一文中发布了通过HTTP 执行PowerShell 的示例代码。
这并非PowerShell 的第一个远程接口,它是通过PowerShell 远程处理协议( PowerShell Remoting Protocol ,PSRP)实现的。但是该协议是为 Windows 机器上的 PowerShell 控制台设计的;与 HTTP 不同,PSRP 无意成为运行在任何操作系统上的任何程序的编程访问接口。
这个 API 本身就是一个 PowerShell 脚本,所以要修改功能,只需要修改这个脚本,无需编译。
这个脚本内部使用了 System.Net.HttpListener。安全方面,默认使用的是集成的 Windows 身份验证(Integrated Windows Authentication),但是可以在命令行中覆盖掉这一设置。示例代码中并没有介绍 SSL 的使用,但如果非常熟悉如何结合使用 SSL 认证和 HttpListener 类,实现起来非常容易。
更重要的是,对编写 PowerShell 模块而言,这是一个很棒的教程。包括注释和空行在内,不足 300 行代码,很容易理解。
查看英文原文: Written in PowerShell, a HTTP API for Executing PowerShell Scripts
评论