QQ群里的Evan童鞋分享了一个很有意思的博客 http://note.youdao.com/noteshare?id=a60709c00fe88cd09155a2ef50815281  大概是如何利用Flask 调用 Powershell API 实现的一个运维管理系统。

豆子依葫芦画瓢,用Django成功地实现了有一个简单的界面。 直接用Bootstrap模板弄个前端页面,Django 框架,然后后台调用PowerShell API实现查询。

下面是一个简单的demo,输入AD的组,显示组成员

Django没啥好说的,基本的MTV框架流程,主要比较好玩的是这个PowerShell API的模块。网上有现成的HttpListener的模块可以下载,QQ群里的童鞋做了些修改,去掉了一个验证的功能,如果有需求,可以自己手动添加一个函数进去。我这里图省事是直接用的去验证的版本。

这个模块下载导入之后就可以执行了,他提供了一个类似restful的接口来执行Powershell的命令,直接Http get请求对应的接口,然后返回json格式的结果

Import-Module C:\users\yuan.li\Documents\GitHub\Powershell\HTTPListener.psm1
start-httplistener -verb -Auth None

测试一下:

浏览器

Python

值得一提的是,具体的Powershell命令放在哪里,我们可以在两个地方设置。一个是直接在uri里面 command=后面输入,简单的命令无所谓,但是如果命令很复杂很长的话,这里就不是太合适了;

另外一个方式是可以在HTTPListener的模块文件里面直接写个function,这样加载的时候一起放入内存了。command=后面直接跟函数名和参数就行了。

比如说:

function search-adgroupmemeber($group){Get-ADGroupMember $group | select name, SamAccountName,Distinguishedname
}

那我直接调用

http://localhost:8888/?command=search-adgroupmemeber 'domain admins'

显示结果

okay,基本能工作了,那么在django上弄个界面看看吧

url.py 路由

url(r'^powershell', views.powershell),

views.py 视图函数

import requests
def powershell(req):if req.method=="GET":return render(req,'powershell.html')elif req.method=="POST":name=req.POST.get("caption")print(name)res=requests.get("http://localhost:8888/?command=get-adgroupmember '%s' | select name, distinguishedname"%name)print(res)result=res.json()print(result)return render(req,'powershell.html',{'result':result})

powershell.html 模板,这里我没用AJAX,就是直接form进行提交

{%  extends 'base.html' %}
{% block css %}<style>.go{width:20px;border: solid 1px;color: #66512c;display: inline-block;padding: 5px;}.pagination .page{border: solid 1px;color: #66512c;display: inline-block;padding: 5px;background-color: #d6dade;margin: 5px;}.pagination .page.active{background-color: black;color: white;}.hide{display: none;}.shade{position: fixed;top: 0;right: 0;left: 0;bottom: 0;background: black;opacity: 0.6;z-index: 100;}.add-modal,.edit-modal{position: fixed;height: 300px;width: 400px;top:100px;left: 50%;z-index: 101;border: 1px solid red;background: white;margin-left: -200px;}.group{margin-left: 20px;margin-bottom: 15px;}</style>
{% endblock %}
{% block content %}
<h1 class="page-header">Powershell 测试页面</h1>
<h3 >查询用户组</h3><form method="POST" action="/powershell">{% csrf_token %}<input type="text" name="caption" placeholder="组名" /><input type="submit" value="查询"/></form>
<br><table border="1"><thead><tr><th>成员</th><th>DN</th><th>操作</th></tr></thead><tbody>
{% for items in result %}<tr ><td>`items`.`name`</td><td>`items`.`distinguishedname`</td><td><a class ='update'>修改 | </a><a class="delete">删除</a></td></tr>
{% endfor %}</tbody></table>{% endblock %}
{% block title%}PowerShell{% endblock %}
{% block js%}
<script>
</script>
{% endblock %}

这样一个查询效果就做出来了。

转载于:https://blog.51cto.com/beanxyz/1979809

Django+ PowerShell 管理AD系统相关推荐

  1. 6425C-Lab2 安全高效地管理AD

    本次实验共包括3个实验. 实验1A,使用管理工具管理AD. 实验1B,在AD中查找一个对象. 实验1C,使用PowerShell管理AD. (附加)实验1D:添加AD管理工具 ========== 实 ...

  2. python车牌识别系统+车辆管理+计费系统(图像识别)django框架 计算机毕业设计

    python车牌识别系统+车辆管理+计费系统(图像识别)django框架 计算机毕业设计 一.开发技术 技术栈:基于Django框架,涉及停车费计算,用户管理,车牌识别(百度云) 功能: [1]用户管 ...

  3. python+django+Vue社区医院管理服务系统

    本次设计任务是要设计一个社区医院管理服务系统,通过这个系统能够满足社区医院管理服务的管理及医生和用户的社区医院管理服务功能.系统的主要功能包括首页.个人中心.用户管理.医生管理.预约医生管理.就诊信息 ...

  4. AD域建设管理(二)| python3+ldap3管理AD域实践(批量创建OU、用户、改密码、更新OU与用户)

    AD域建设管理(二)| python3+ldap3管理AD域实践(批量创建OU.用户.改密码.更新OU与用户) 1.使用前提 1.1.关于程序运行环境 1.2.关于AD域的准备和配置 2.问题和解决方 ...

  5. 活动目录(Active Directory)管理,AD自动化

    每个IT管理员几乎每天都在Active Directory管理中面临许多挑战,尤其是在管理Active Directory用户帐户方面.手动配置用户属性非常耗时.令人厌烦且容易出错,尤其是在大型.复杂 ...

  6. 使用Powershell管理Linux 下的 SQL Server

    使用Powershell管理Linux 下的 SQL Server 我们上一篇文章介绍了在Centos 7.3下安装及配置 SQL Server,今天我们主要介绍的是如何在Windows下使用Powe ...

  7. Powershell管理Active Directory 复制和拓扑

    Powershell管理Active Directory 复制和拓扑 Active Directory 的 Windows PowerShell (AD) 支持复制和拓扑管理.它包含了管理复制.站点. ...

  8. Django之入门 CMDB系统 (一) 基础环境

    Django之入门 CMDB系统  (一) 基础环境前言作者: 何全,github地址: https://github.com/×××    QQ交流群: 62-01-76-50-1 通过此教程完成从 ...

  9. python的django后台管理_python测试开发django-17.admin后台管理

    前言 通常一个网站开发,需要有个后台管理功能,比如用后台管理发布文章,添加用户之类的操作.django的admin后台管理主要可以实现以下功能 基于admin模块,可以实现类似数据库客户端的功能,对数 ...

最新文章

  1. Java程序的运行原理及JVM的启动是多线程的吗?
  2. 编程练习:Matlab 一个小任务(-)
  3. Boost:circular_buffer作为边界缓冲区的基础容器
  4. Could NOT find SDL_image (missing:SDL_IMAGE_LIBRARIES SDL_IMAGE_INCLUDE_DIRS)
  5. 生活在任务栏的猫, CPU使用率越高它就跑的越快
  6. day3-python学习笔记(三)字典、元组
  7. phpcmsV9栏目内文章批量移动后,新的内容页模板不生效 -分析篇
  8. int** 赋值_一篇文章搞明白Integer、new Integer() 和 int 的概念与区别
  9. Redis常用命令及命名规范
  10. iPhone屏幕尺寸和分辨率
  11. dreamware html中加入flv,Dreamweaver插入FLV文件技巧
  12. C\C++ 大作业 直接运行—员工信息管理系统(STL/类与对象/继承/多态/文件操作)
  13. micropython移植教程_移植MicroPython到NUCLEO_L476RG开发板
  14. 2019年 -- 最新前端面试题攻略
  15. 李时珍告诉你怎么不得病!放在手机上别丢了
  16. Android事件分发-来龙去脉
  17. 结构体的定义与结构体变量的定义
  18. JavaScript中定义对象的几种方式
  19. Unity之射线穿透
  20. 闲鱼 12 块买的软件资源!禁止贩卖赚钱

热门文章

  1. 移动端web开发——视口
  2. 第十二章 DOM2和DOM3
  3. Atitit.eclipse git使用
  4. 怎样取消shutdown关机命令?-shutdown命令的使用解析
  5. javascript焦点图(能够自己主动切换 )
  6. ylb:SQL 视图(View)基础
  7. CSS中调用JS函数和变量
  8. ODP.NET数据访问
  9. 在WPF中创建可换肤的用户界面
  10. 第一次加入博客那,鼓励一下自己先