Html+JS+PowerShell如何打造Web版AD管理系统

技术Html+JS+PowerShell如何打造Web版AD管理系统这篇文章主要介绍Html+JS+PowerShell如何打造Web版AD管理系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!利

本文主要介绍了Html JS PowerShell如何构建一个Web版的AD管理系统。很详细,有一定的参考价值。感兴趣的朋友一定要看完!

用Flask调用Powershell API实现运维管理系统。

其实原理是一样的,主要是使用Django/Flask框架,Bootstrap作为前端,然后后台python调用PowerShell API实现查询。

但是后台同时有powershell和python,这让我很不爽。我只想用PowerShell,所以我有下面的折腾。

前往演示Html+JS+PowerShell如何打造Web版AD管理系统

首页是一个简单的html。为了好看,使用了引导框架。

Bootstrap-table用于通过表格显示查询到的数据,还具有导出、排序和分页功能。

事件控制:jquery、ajax

是后台PowerShell实现的API。网上有很多。我在豆豆的博客中尝试了HttpListener的模块,以及微软员工制作的web框架https://github.com/PowerShell/Polaris。没有问题。应该是PowerShell的Web框架。

1.在后台执行PowerShell

import-modulec : \ users \ yuan . Li \ Documents \ GitHub \ Powershell \ httplistener . PS m1

start-httplistener-verb-authnone-port 8888注意:我对HTTPListener.psm1的内容做了一些更改,以避免跨域限制。

#区域跨域

$回应。AddHeader('访问控制-允许-来源',' * ');

$回应。添加标题(“访问控制-允许-标题”、“身份验证”);

$回应。AppendHeader('访问控制-允许-头','原始,无缓存,X-请求-有,如果-修改-自,Pragma,上次修改,缓存控制,过期,内容类型,X-E4M-有');

#endregion跨域未被很好地理解。我在网上找到的,直接贴上去,但是真的很管用。

2.没有python和flask/django框架,所有控件都由JS实现。

首先,使用Geturl()拼接powershell调用的url。

var $ PS webpai=' http://10 . 128 . 9/?命令='

//构建WebapiURL

functionGetURL(选项){ 0

//切换网址

开关(选项){ 0

案例“邮件”:

var $ cmdlet=' Get-ADUser-Filter * | selectName,SamAccountName,user principalname | Where-Object { $ _。UserPrincipalName-ne$null}”

打破;

(=NationalBureauofStandards)国家标准局

p;   case "computer":
            var $cmdlet = "Get-ADComputer -Filter * -Property name,DNSHostName,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion"
            break;
    }
    var $url = $pswebpai + $cmdlet
    //alert($url)
    return $url
}

然后,用ajax实现异步执行

    //当点击查询按钮的时候执行  
    $QueryButton.click(function () {
        //获取下拉菜单值
        var option = $("#myselect").val();
       var $url = GetURL(option);
        $.ajax({
            url: $url,
            dataType: 'json',
            contentType: 'application/json',
            charset: 'UTF-8',
            success: function (result) {
                console.log("Success");
                //console.log(result);
                CommonTableInit(option, result); //初始化表格的函数
            },
            error: function (result) {
                alert("error!");
            }
        });
    });

这样一个Web查询功能就实现了。而且不用装python,flask\django框架了,部署的话也很简单,直接挂个地址就好了。(flask版试了在IIS下部署,没成功- -~)
后续还可以扩展增删改查功能。
目前唯一的问题就是HTTPListener有时查询会报错退出,估计换个健壮点的PowerShell Web框架就可以了。
Html+JS+PowerShell如何打造Web版AD管理系统
其他思路:
1.完全用PowerShell Web框架去实现。
2.dotNet Core Web应用,生成exe格式的自托管console应用程序,直接双击执行。(WebAPI,C#调用powershell)

×××链接:
http://down.51cto.com/data/2441697

跨域这块儿一直没搞明白,用jsonp的话,debug的响应里能看到返回的json对象,但是console.log(返回的json对象);的话,则看不到任何返回的json对象数据,ajax的回调函数也没有接收到json对象,感觉就好像而是直接被浏览器接收了。。。换了好几个powershell WebAPI都是这个问题。直接访问powershell webapi也都是有数据的。
Html+JS+PowerShell如何打造Web版AD管理系统Html+JS+PowerShell如何打造Web版AD管理系统

以上是“Html+JS+PowerShell如何打造Web版AD管理系统”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/114459.html

(0)

相关推荐

  • PostgreSQL如何实现自动更新时间戳

    技术PostgreSQL如何实现自动更新时间戳这篇文章主要介绍PostgreSQL如何实现自动更新时间戳,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是PostgreSQL时间戳数据类型?在P

    攻略 2021年11月24日
  • CSS中上下margin的传递和折叠

    技术CSS中上下margin的传递和折叠 CSS中上下margin的传递和折叠CSS中上下margin的传递和折叠
    1.上下margin传递
    1.1.margin-top传递为什么会产生上边距传递
    块级

    礼包 2021年12月23日
  • golang解析json(golangjson配置)

    技术如何用golang源码分析simplejson如何用golang源码分析simplejson,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。背景:1,go

    攻略 2021年12月13日
  • javascript如何判断id是否存在

    技术javascript如何判断id是否存在这篇文章主要为大家展示了“javascript如何判断id是否存在”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascrip

    攻略 2021年11月7日
  • 解除流量封顶,40G流量用完啦,怎么办

    技术解除流量封顶,40G流量用完啦,怎么办联通腾讯王卡解除流量封顶,根据网络使用公平原则,在当月总流量达到40G后将会关闭上网功能,次月自动恢复。如当月要继续使用,可通过电子渠道开通“解除流量封顶服务”,开通后超出40G

    生活 2021年10月23日
  • 大数据Linux开发笔记-10磁盘分区

    技术大数据Linux开发笔记-10磁盘分区 大数据Linux开发笔记-10磁盘分区分区的方式:mbr分区最多支持四个主分区
    系统只能安装在主分区
    扩展分区要站一个主分区
    最大支持2TB,但拥有最好的兼容

    礼包 2021年10月26日