【问题标题】:How to make an HTML GUI for PowerShell scripts?如何为 PowerShell 脚本制作 HTML GUI?
【发布时间】:2016-03-16 11:55:58
【问题描述】:

我有一个用于制作新 AD 客户端和 Google 邮件的自动化脚本。 我想为此制作一个 Web UI(HTML 和 CSS),以便我的团队可以登录到此页面并从您所在的任何地方进行创建。

我该怎么做?

是否有将 HTML 页面连接到 PowerShell 脚本的指南?

【问题讨论】:

  • 选择您选择的服务器端脚本语言。它们都支持某种exec() 命令在命令行上执行脚本。

标签: html powershell frontend


【解决方案1】:

一个选项(很多)是让 Powershell 托管您的 HTML。使用 System.Net.HttpListener 网络监听器,并根据您想要提供的内容回答请求。

有一篇关于用Powershell搭建web服务器的文章:
https://4sysops.com/archives/building-a-web-server-with-powershell/ https://www.powershellgallery.com/packages/HttpListener/1.0.2/Content/HTTPListener.psm1

当您对数据尖叫有如此低级别的控制时,您可以将 HTML 的强大功能用于 powershell。

现在,虽然这符合您的问题,但这非常复杂(任何时候您必须同时使用多种语言进行开发——HTML、Powershell,也许是 Javascript 等),它可能会很快变得复杂。

我的建议是确保您确实需要您的建筑基于网络的应用程序。

如果您只想要 GUI(并且 Web 不是必需的),那么使用其他一些答案的 .NET 表单功能,这项任务会容易得多。

powershell 库链接实际上有一个功能强大的 Powershell Web 服务器脚本,不到 175 行(加上 cmets),最初是 2014 年在 Microsoft 内部编写的。

(Microsoft 代码在移动 URL 时称为 HTTPListener.psm1,因此可以在网络引擎搜索中找到)

【讨论】:

    【解决方案2】:

    无耻插件,但我最近发布了一个基于 .NET5 的开源 Web 应用程序,您可能想查看它,名为 SpecOps。它旨在让非技术用户能够通过基于 Web 的 GUI 运行 powershell 脚本。您在 json 配置文件中定义您的脚本及其输入参数,它会为您的用户即时构建 GUI。

    【讨论】:

      【解决方案3】:

      您将 HTML GUI (HTA) 用于 VBScript 和/或 JavaScript。对于 PowerShell,您使用 Windows Forms

      Add-Type -AssemblyName System.Windows.Forms | Out-Null
      
      $form = New-Object Windows.Forms.Form
      $form.AutoSize = $true
      $form.AutoSizeMode = 'GrowAndShrink'
      
      $form.Text = 'Window Title'
      
      $label = New-Object Windows.Forms.Label
      $label.Text = 'some text'
      $label.AutoSize = $true
      $form.Controls.Add($label)
      
      $form.ShowDialog()
      

      【讨论】:

      • 这只会在调用脚本后起作用。首先不是作为调用脚本的接口。
      • 正确,但无关紧要。您可以轻松地将身份验证构建到脚本中,并通过公共共享使其可用。
      • 问题是如何使用 Powershell 作为 Web 客户端的后端。这里展示的是如何制作 Powershell GUI。这错过了请求的最大要点,即基于 HTML。
      • @Jean-ClaudeD。为 PowerShell 脚本制作 GUI 时无需使用 HTML,因为 GUI 可以嵌入到脚本中。这样它就可以在任何管理客户端上运行,而不必设置运行 Web GUI 的 Web 服务器,而 Web GUI 又运行 PowerShell 脚本。
      • @Ansgar Wiechers -- 同样,你错过了我的问题。问题不是“如何为 PowerShell 脚本制作 GUI?”。它是“如何为 PowerShell 脚本制作 HTML GUI?”。我们不知道提出这个问题的 OP 有什么可能的限制。出于某种原因,它可能必须是 HTML 格式(可能是现有网站的一部分)。
      【解决方案4】:

      最简单的方法可能是使用像 Jenkins 这样的包,它提供前端并且已经具有身份验证插件并且还可以运行 powershell。

      https://jenkins-ci.org/

      有一个用于运行 powershell 的插件。 https://wiki.jenkins-ci.org/display/JENKINS/PowerShell+Plugin

      如果需要,您甚至可以将其绑定到 Active Directory。 https://wiki.jenkins-ci.org/display/JENKINS/Active+Directory+plugin

      【讨论】:

        【解决方案5】:

        您可以使用System Frontier 自动为 PowerShell 脚本生成 Web 前端。无需 HTML 或服务器端编程。您只需创建自定义字段并将它们分配给命令行参数。

        您还可以获得在脚本前面设置访问控制层的好处,因此非管理员可以管理员权限安全地运行脚本。还会记录脚本输出以进行审计和数据挖掘。

        【讨论】:

          猜你喜欢
          • 2010-10-30
          • 2012-09-16
          • 1970-01-01
          • 2015-01-02
          • 1970-01-01
          • 2017-12-10
          • 2013-07-01
          • 2016-05-07
          • 2019-10-04
          相关资源
          最近更新 更多