对PowerShell Web Access的API访问?

时间:2014-04-11 02:07:01

标签: powershell powershell-remoting

PowerShell Web Access允许您通过Web浏览器运行PowerShell cmdlet。它显示了一个基于Web的控制台窗口。

有没有办法在没有输入到控制台窗口的情况下运行cmdlet?有没有办法让结果回来?

我正在设想一个让非技术用户重新启动打印队列(例如)而不必知道PowerShell的应用程序。应用程序将显示打印队列列表,然后用户可以选择一个并重新启动队列。该应用程序本质上是一个包装器,负责处理语法和变量,以便用户不需要知道。

有没有办法通过PowerShell Web Access实现这一目标?或者是否还有其他方法可以让非Windows应用程序在不重新发明轮子的情况下向Windows服务器发送任意命令?

1 个答案:

答案 0 :(得分:2)

不使用PowerShell Web Access **。这是为交互式会话而设计的。

有几种方法可以做到这一点。所有的例子都是说明性的,可能已经过时,不安全等等。

  • 创建一个运行C#的ASP.NET Web应用程序。在C#中运行PowerShell。根据需要使用PowerShell远程处理。 Example
  • 使用Windows Presentation Foundation或WinForms创建GUI应用程序。根据需要使用PowerShell远程处理。 Example
  • 使用PowerShell可以访问的API(例如REST)创建服务。
  • **好吧,我骗了。创建一个使用通过PowerShell Web Access访问的委派受约束端点的笨重解决方案。
  • 对于使用PowerShell远程处理的上述每个解决方案,请考虑委派和/或约束端点。 Example

我们有一个Web应用程序,允许某些用户使用某些参数执行某些功能。使用C#支持的ASP.NET,使用一组预定义的PowerShell脚本,以及谁可以执行存储在SQL DB中的操作的配置。例如......

  • Jane可以在服务器Y上重新启动应用程序池X.
  • John可以在服务器Q上重启服务Z。
  • IT支持可以解锁他们自己的“行政管理”。来自其标准帐户的帐户。
  • 所有这些都可以从非Windows计算机上运行。其中一些可能会被小心地暴露以允许在移动设备上使用:)

如果您有用例,那么设计系统和编写代码背后的小开销将很快得到回报。

干杯!