gpt4 book ai didi

python - 如何连接到远程 Windows 机器以使用 python 执行命令?

转载 作者:太空狗 更新时间:2023-10-29 17:05:18 24 4
gpt4 key购买 nike

我是 Python 的新手,我正在尝试制作一个连接到远程 Windows 机器并在那里执行命令并测试端口连接的脚本。

这是我正在编写的代码,但它不起作用。基本上,我想要返回本地机器数据,而不是远程机器数据。

import wmi
import os
import subprocess
import re
import socket, sys

def main():

host="remotemachine"
username="adminaam"
password="passpass!"
server =connects(host, username, password)
s = socket.socket()
s.settimeout(5)
print server.run_remote('hostname')

class connects:

def __init__(self, host, username, password, s = socket.socket()):
self.host=host
self.username=username
self.password=password
self.s=s

try:
self.connection= wmi.WMI(self.host, user=self.username, password=self.password)
self.s.connect(('10.10.10.3', 25))
print "Connection established"
except:
print "Could not connect to machine"


def run_remote(self, cmd, async=False, minimized=True):
call=subprocess.check_output(cmd, shell=True,stderr=subprocess.STDOUT )
print call

main()

最佳答案

您可以使用以下两种方法将一台计算机连接到网络中的另一台计算机:

  • 使用 WMI 库。
  • 网络使用方法。

WMI

这里是使用 wmi 模块连接的例子:

ip = '192.168.1.13'
username = 'username'
password = 'password'
from socket import *
try:
print("Establishing connection to %s" %ip)
connection = wmi.WMI(ip, user=username, password=password)
print("Connection established")
except wmi.x_wmi:
print("Your Username and Password of "+getfqdn(ip)+" are wrong.")

网络使用

第二种方法是使用netuse模块。

通过Netuse,您可以连接到远程计算机。您可以访问远程计算机的所有数据。可以通过以下两种方式:

  1. 通过虚拟连接进行连接。

    import win32api
    import win32net
    ip = '192.168.1.18'
    username = 'ram'
    password = 'ram@123'

    use_dict={}
    use_dict['remote']=unicode('\\\\192.168.1.18\C$')
    use_dict['password']=unicode(password)
    use_dict['username']=unicode(username)
    win32net.NetUseAdd(None, 2, use_dict)

    断开连接:

    import win32api
    import win32net
    win32net.NetUseDel('\\\\192.168.1.18',username,win32net.USE_FORCE)
  2. 在本地系统中安装远程计算机驱动器。

    import win32api
    import win32net
    import win32netcon,win32wnet

    username='user'
    password='psw'

    try:
    win32wnet.WNetAddConnection2(win32netcon.RESOURCETYPE_DISK, 'Z:','\\\\192.168.1.18\\D$', None, username, password, 0)
    print('connection established successfully')
    except:
    print('connection not established')

    在本地系统中卸载远程计算机驱动器:

    import win32api
    import win32net
    import win32netcon,win32wnet

    win32wnet.WNetCancelConnection2('\\\\192.168.1.4\\D$',1,1)

Before using netuse you should have pywin32 install in your system with python also.


来源:Connect remote system .

关于python - 如何连接到远程 Windows 机器以使用 python 执行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18961213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com