如何在windows机器不安装agent可以上传文件,远程执行命令等,通过wmi,samba协议

很多情况下,我们想要通过代码脚本的方式去完成直接在远程操作windows机器,获取信息,或者上传执行一些文件之类的。那么通常情况下我们需要在客户机部署一个探针,也就是所谓的agent。也就是一个服务在上面跑,我们才能进行通信。

但是在这里我想告诉大家一个好事情,那就是完全可以不用安装任何。

只要确保135,445端口的开放,当然了默认这些都是有开放的噢。

然后我们接下来以python脚本的方式来进行一段测试。在Linux上安装python模块,然后远程操作windows机器

首先,我们需要安装两个插件(需有装python的前提噢)

如何在windows机器不安装agent可以上传文件,远程执行命令等,通过wmi,samba协议

当然了 ,这两个可能会依赖一些其他的东西,这个大家自行去查找一下包安装一下吧。

然后安装好之后呢。我们可以用命令进行一下测试远程连接windows的操作。

如下:检查网卡

wmic -U Administrator%password //10.168.3.221 "SELECT Name FROM Win32_PerfFormattedData_Tcpip_NetworkInterface"

如何在windows机器不安装agent可以上传文件,远程执行命令等,通过wmi,samba协议

看到没有呢。

然后我们用python的方式去执行一下。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
import io
import wmi_client_wrapper as wmi
import os
import time
reload(sys) 
sys.setdefaultencoding('utf-8')
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
host = "10.168.3.23"
user = "Administrator"
pwd = "20111bar"
try:
    wmic =  wmi.WmiClientWrapper(username=user,password=pwd,host=host)
    data = wmic.query("SELECT BytesReceivedPersec,BytesSentPersec FROM Win32_PerfFormattedData_Tcpip_NetworkInterface")#CPU个数
    if(len(data) > 0):
        for d in data:
            print d['Name'].decode("utf-16le",'ignore').encode("utf-8")
except Exception,e:
    print e;

查看结果:

如何在windows机器不安装agent可以上传文件,远程执行命令等,通过wmi,samba协议

 

更多深入了解或疑问请关注小编博客,定期更新,定期解答,谢谢大家