使用微软自带远程桌面控制校园网内计算机

使用条件

1.被控制电脑系统需要家庭版以上
2.连接到网络
3.开启远程桌面服务
4.校外控制校内电脑,控制电脑需要使用VPN(很多高校都免费提供)
5.360安全卫士杀毒软件等未禁用远程桌面端口(默认3389)

使用方法

1.开启被控制电脑的远程桌面服务

在Windows 搜索框 输入远程桌面设置,启用远程桌面,并选择可远程访问这台电脑的用户
查看被控制电脑的ip地址,并记录(每次拨号,或者开关机ip地址都有可能改变)。

2.远程控制电脑

在控制电脑的搜索框搜索远程桌面连接如图所示:

python 如何实现远程控制电脑启动某个程序_windows


在计算机位置输入 被控制电脑的ip地址(例 172.25.123.255),在用户名处输入被控制电脑的可远程访问这台电脑的用户用户名,可将此设置保存到桌面。连接后输入对应密码即可连接成功。在本地资源处可以设置驱动器,可以在使用被控制电脑上,访问控制电脑的磁盘内容,也可以进行读写文件操作,两台电脑间的文件的复制粘贴也可以使用但不建议(会占用校内网络资源)

校外使用

在控制电脑上使用VPN即可。

反复横跳

由于网络断开,停电开机等原因,被控制电脑ip地址经常改变,给实现远程控制增加很多麻烦,此章节将结合被控制电脑BIOS、校园网邮箱、Python和Windows 任务计划程序****解锁自由使用远程控制服务

1.使用原理

  1. 校园邮箱可以实现在只连接校内网时发送邮件,这一过程也可以在Python,MATLAB等软件上实现。
  2. Python,MATLAB等软件可以获得电脑ip地址。
  3. Windows 任务计划程序可以在设定条件下触发运行某些程序或脚本。
  4. 结合上述三个既可以获取被控制电脑ip。

2.实现方法

  1. 校园邮箱开启客户端服务,不同学校邮箱可能有所不同,这里不做介绍,可以在网络上搜索有关内容,此处可以得到邮箱的授权码。
  2. 使用Python发送邮箱,安装stmplib和socket库
    代码如下(示例):
import smtplib
import socket
from email.mime.text import MIMEText
from email.header import Header
hostname = socket.gethostname()
ip = socket.gethostbyname(hostname)
print(ip)
mail_host = "smtp.xxx.edu.cn"  # 校园邮箱服务器,非SMTP协议 可搜索其他发送邮件方式。
mail_user = "name@u.edu.cn"  # 用户名
mail_pass = "***********"  # 授权码

sender = 'name@xxx.edu.cn'
receivers = ['xxx@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

message = MIMEText(ip, 'plain', 'utf-8')
message['From'] = Header("远程控制", 'utf-8')
message['To'] = Header("xxx", 'utf-8') #收件人名称

subject = 'ip地址'
message['Subject'] = Header(subject, 'utf-8')

smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())

修改参数,运行程序即可发送邮件。

  1. 脚本发送邮件:
    新建文本,并写入
    python F:\Send_mail\send_ip.py(此处为Python程序文件路径名。)另存为bat文件。双击此文件,测试是否能发送邮件。
  2. 条件发送邮件
    4.1. 设置常规参数
    选中此电脑,右键、管理、任务计划程序中的任务计划程序库,创建任务,设置名称,并修改参数。如图所示。

    4.2. 设置触发器
    设置触发器,使电脑开机和拨号断开时发送邮件。

    4.3. 操作
    设置操作启动程序。

    这些步骤可以直接导入任务:(只需修改操作程序路径)

    在文本文件中新建xml文件,内容如下:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2021-03-10T15:58:26.1261625</Date>
    <Author></Author>
    <URI>\sendip</URI>
  </RegistrationInfo>
  <Triggers>
    <BootTrigger>
      <Enabled>true</Enabled>
    </BootTrigger>
    <EventTrigger>
      <Enabled>true</Enabled>
      <Subscription><QueryList><Query Id="0" Path="System"><Select Path="System">*[System[EventID=20268]]</Select></Query></QueryList></Subscription>
    </EventTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-21-377813917-2060707041-2476026341-1001</UserId>
      <LogonType>Password</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>F:\Send_mail\send_ip.bat</Command>
    </Exec>
  </Actions>
</Task>

到此即可,记得使用前测试一下。