经调研和测试,服务端可通过ansible控制各linux服务器(容器),进行各类操作,且支持远程控制windows服务器,但windows操作系统中,需安装.net及powershell3.0及以上版本。

高频应用为win2003 暂无法安装powershell 3.0及以上版本,无法通过ansible远程控制。

win2008及以上操作系统可以。

经测试可通过使用python 利用winrm远程控制win2003。

因此结合自动化运维工具ansible(也是基于python)和python脚本,应可实现测试环境所有虚拟机的远程控制,请各位探索学习和实践,组内发布实践成果。

0、ubuntu安装ansible

可使用任一台docker-pc服务器进行试验(pc2及之后),linux客户端无需任何操作。

或使用任意linux虚拟机,安装ansible工具即可。

ansible安装参考http://www.ansible.com.cn/docs/intro_installation.html

ubuntu安装:

Ubuntu 编译版可在PPA中获得: ` <https://launchpad.net/~ansible/+archive/ansible>`_.

配置PPA及安装ansible,执行如下命令:

$ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa:ansible/ansible $ sudo apt-get update $ sudo apt-get install ansible

1、win2003需进行的操作为(使用python控制或ansible控制均需)

安装Microsoft_.NET_Framework_3.5_Service_Pack_1简体中文安装版.exe

安装powershell2.0 WindowsServer2003-KB968930-x86-ENG.exe (需.net>2.1 当前2.0)

powershell执行(win2008及之上仅需在powershell中执行)

set-executionpolicy remotesigned

get-host

winrm enumerate winrm/config/listener

winrm quickconfig

winrm e winrm/config/listener

winrm set winrm/config/service/auth '@{Basic="true"}'

winrm set winrm/config/service '@{AllowUnencrypted="true"}'

netstat -ano | findstr "5985"

2、调时间相关指令:

具体步骤

net stop w32time

w32tm /unregister

w32tm /register

net start w32time

w32tm /config /manualpeerlist:172.26.41.241 /syncfromflags:manual /update

w32tm /resync

3、控制端python脚本

安装包

使用Python的pip安装pywinrm及kerberos(可暂不安装)

apt-get install python-pip

pip install pywinrm==0.1.1

远程控制win2003同步时间

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author : "David J"
import winrm
import sys
import argparse
import httplib2
host="172.26.41.36"
ntpserver="172.26.41.241"
username="administrator"
passwd="..."
s = winrm.Session('http://'+host+':5985/wsman',auth=('administrator','UatTester'))
def _runCommand(comm):
if(comm == "q"):
sys.exit()
r = s.run_cmd(comm)
print r.std_out
while 1:
cmd1='w32tm /register'
cmd2='net start w32time'
cmd3='w32tm /config /manualpeerlist:'+ntpserver+' /syncfromflags:manual /update'
cmd4='w32tm /resync'
cmd5="date /t && time /t"
_runCommand(cmd1)
_runCommand(cmd2)
_runCommand(cmd3)
_runCommand(cmd4)
_runCommand(cmd5)
# _runCommand(date \t')
_runCommand("q")

  

python应用-使用python控制win2003服务器的更多相关文章

  1. python基础之条件控制与循环

    Python3 条件控制 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户 ...

  2. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  3. Python网络02 Python服务器进化

    原文:Python网络02 Python服务器进化 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! **注意,在Python 3. ...

  4. Django是Python下的一款网络服务器框架

    被解放的姜戈01 初试天涯   Django是Python下的一款网络服务器框架.Python下有许多款不同的框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django ...

  5. python socket 实现的简单http服务器

    预备知识: 关于http 协议的基础请参考这里. 关于socket 基础函数请参考这里. 关于python 网络编程基础请参考这里. 一.python socket 实现的简单http服务器   废话 ...

  6. PyCharm 配置远程python解释器和在本地修改服务器代码

    PyCharm 配置远程python解释器和在本地修改服务器代码 最近在学习机器学习的过程中,常常需要将本地写的代码传到GPU服务器中,然后在服务器上运行.之前的做法一直是先在本地写好代码,然后通过F ...

  7. Python学习笔记——条件控制

    Python中的条件控制方式基本和C语言类似,主要有如下几种语法: If条件判断 Python的条件语句的语法是if…elseif…else,如下的一个简单的猜数字的示例演示了这一过程: number ...

  8. python 运算和流程控制

    写在之前 今天突发奇想,想要弄一个微信自动抢红包的程序,首先去百度这个,找到了有两种方法 一种是安装「pocoui」这个第三方库,但没有给出详细代,我就没有使用这个方法. 我用使用的是第二种借助「Ai ...

  9. Python基础-1 python由来 Python安装入门 注释 pyc文件 python变量 获取用户输入 流程控制if while

    1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚 ...

随机推荐

  1. pom.xml文件中dependency标签的scope子标签

    1.最近整合了公司的一个项目A,而A又依赖项目B,项目B中pom.xml中有一个依赖的<scope>provided</scope>,查了一下,原来provided属性,jar ...

  2. 一点点学习PS--实战三

    本节实战,练习多张图片合成,调色相饱和度,剪贴蒙版的使用场景,人物内发光,人物轮廓光以及多种图层混合模式的使用,深入了解图层蒙版 1.工具使用 (1)多边形套锁工具:适用于棱角分明的抠图区域,选中了区 ...

  3. vue图书小案例

    小知识点: vue中计算属性有缓存(对象属性变化时才会更新),方法没有缓存,所以计算属性比方法效率高js中let有块级作用域,var没有块级作用域,所以var是有缺陷的this.letters[0] ...

  4. AcWing 799. 最长连续不重复子序列 双指针(一般先写一个朴素暴力的做法,然后看两个指针直接是否存在单调关系,如果存在,就想方法优化)

    https://www.acwing.com/problem/content/801/ #include<bits/stdc++.h> using namespace std ; int ...

  5. DVWA全级别之File Upload(文件上传)

    File Upload File Upload,即文件上传漏洞,通常是由于对上传文件的类型.内容没有进行严格的过滤.检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件上传漏洞带 ...

  6. 开发笔记—钉钉服务商应用isv开发,从应用配置,到获取客户企业通讯录

    以第三方企业微应用为例 在第三方企业微应用应用时,比较底层的需求,就是应用需要获取客户企业的通讯录,即部门/员工的数据.本人整理以下几个关键数据,供大家开发参考. 新建第三方微应用时,能拿到这些初始数 ...

  7. 使用命令行生成动态库dll

    1.安装开发工具,比如visual studio或者mingw等等.下面以visual studio编译器cl作为讲解. 2.导出dll中的函数基本使用两种方式,可以使用关键字__declspec(d ...

  8. vue中style下scope的使用和坑

    在vue组件中,为了使样式私有化(模块化),不对全局造成污染,可以在style标签上添加scoped属性以表示它的只属于当下的模块,这是一个非常好的举措,但是为什么要慎用呢?因为在我们需要修改公共组件 ...

  9. 【C语言】利用二维数组输出成绩

    目的:用二维数组输出下面成绩 希望你可以成为第五名童鞋! 代码: #include<stdio.h> int main() { /* 创建一个带有 4行 5 列的数组 */ ][] = { ...

  10. Mysql 慢查询之showprofile

    show profiles:返回服务器上最近执行的语句 资源的使用情况. 一.使用准备 Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后. mysql& ...