随着计算机技术及网络技术的发展,网络的应用越来越广泛,计算机不仅可以控制本地的设备, 还可通过网络控制远端的设备,网上监控便应运而生。将远程控制应用于各种网络管理软件中,已成为网络技术管理的重要手段。远程关机也是其中的一种。这里介绍一种远程关机的实现方式。

中文名

远程关机

外文名

remote shutdown

特    点

方便、效率高应    用

计算机网络通信

目    的

远程控制计算机关机

领    域

计算机

远程关机概述

编辑

语音

随着计算机网络通信技术的迅猛发展, 网络的应用越来越广泛, 计算机不仅可以控制本地的设备, 还可通过网络控制远端的设备, 计算机网络控制技术离不开网络编程。 相比众多编写网络通信软件的工具和方法,使用Winsock控件进行网络编程简单而且有效, 因而用处颇为广泛, 成为一种主要技术。 Winsock控件支持UDP和TCP两种协议,可以方便地实现了服务端和客户端的连接,在利用Winsock控件进行开发时,程序员并不用过多了解协议的内容,及网络间的关系和理论,也不需要调用低级的Socket通用程序接口,只需要使用Winsock, 由W insock寻找并利用已经安装好的底层协议,正确设置控件的属性、方法、 事件,就可开发出相关程序。实现计算机之间的双向数据交换。 本文主要介绍基于TCP/IP协议的Windows环境下使用Vb语言进行W insock网络编程的原理和方法,实现C/S模式的一种网络通信。这里介绍了如何实现通过网络控制远程计算机关机[1]

远程关机设计思想

编辑

语音

本系统基于C/S体系结构设计, C/S模式是一种传统的开发模式,适用于用户有限的局域网环境。 在这种模式下,客户端与服务器直接相连, 因此响应速度快。开发费用较低,周期也较短。 服务器端(控制端)运行Server程序,在每台客户端(被控端)上也需要运行专门的Client程序。 通过修改注册表信息, 将Client的可执行文件加到HKEY -LOCAL-MACHINE\SOFTW ARE\Microsoft\W indows\CurrentVersion\Run下,使Client程序在每次开机时能够自动运行, 运行后两端程序可以通过IP地址建立连接,进行数据传递, 以达到通信的目的。 远程关机功能模块连接在Client中, Server根据需要向Client发送不同的命令(字符串), Client根据接受到的命令调用不同的功能模块,执行相应的功能, 实现管理机对被管理机的远程控制。在WindowsNT/2000系统中,必需先调用API函数,获取关闭计算机的权限, 然后才能关闭计算机。 可以将这个过程写入客户端程序中, 在执行关机命令之前先执行此步骤以获取权限。 所以具体的远程关机的步骤是: 第一步利用winsock控件取得通信连接; 第二步为当前进程获取关机权限; 第三步根据服务器发送的命令, 客户机调用ExitW indowsEx函数实现关机、 注销、重启[1]

远程关机系统实现

编辑

语音

远程关机winsock连接

Winsock在计算机中提供了一个通信端口, 通过这个端口, 一台计算机可以和网络中任何具有Winsock端口的计算机通信, 利用Winsock控件可以与远程计算机建立连接, 并通过用户数据文报协议(UDP)或者传输控制协议(TCP)进行数据交换。这两种协议都可以用来创建客户与服务器应用程序。本系统采用了后者, 通信过程为:

服务器端:

1)设置服务端的监听端口LocalPort属性, 调用Listen方法进行监听, 进行等待状态后, 方能接收客户请求。

2)当客户端发同请求连接时(Connect), 服务器端产生ConnectionRequest事件, 要响应连接, 就要调用Accept方法接受客户端的requestID请求, 此后服务端和客户端的连接开始建立。

客户端:

1)设置客户端的RemoteHost和RemotePort属性,分别与服务器的IP地址, 监听端口为同一个值。 然后调用Connect方法向服务器提交连接请求。

2)服务端和客户端连接上后, 就可以相互用SendData方法发送数据和GetData方法接收数据了。 当接收数据到达时,发生DataArrival事件, 可根据DataArrival事件判断调用的事件。 当服务器或客户端请求关闭连接时,调用Close方法即可[1]

远程关机调用API函数获取关机权限进行关机

关闭Windows所调用的API函数是ExitWindowsEx,而WindowsNT/2000基于安全性的考虑, 必须先以API函数AdjustTokenPrivileges设置安全级别, 才能关机。在Windows2000/NT下面, 各种与系统有关的操作, 比如: 关闭系统, 添加设备或者修改系统时间等,必须要具有一定的权限才能进行。 系统为每一个登录的用户设置了各种权限, 这些权限放到“访问令牌(access token)” 中。如果要在程序中进行授权的操作, 必须要将访问令牌中的这些操作设为可行的才能使用。 我们要修改一个进程的访问令牌, 先调用GetCurrentProcess函数取得当前进程访问令牌的句柄,然后调用OpenProcessToken函数打开当前进程的访问令牌, 接着调用LookupPrivilegeValue函数取得你想提升的权限的值, 最后调用AdjustTokenPrivileges函数给当前进程的访问令牌增加权限就可以了[1]

远程关机过程调用方法

在编程中, 在Client的DataArrival事件中完成过程调用,

PrivateSubClientDataArrival(ByVal bytesTo2talAsLong)

Dim i As st ring

Client.GetData I/‘接收管理机发送的命令字符串

selectcasei

case/‘关机’

AdjustTokenPrivilegesForNT

ExitW indowsEx EW X _SHUTDOW N,0/‘如果为“关机” 则调用远程关机过程

case/‘重启’

AdjustTokenPrivilegesForNT

ExitW indowsEx EW X _REBOOT, 0/‘如果为“重启”则调用远程重启过程case‘注销’

AdjustTokenPrivilegesForNT

ExitW indowsEx EW X _ LOGOFF,0/‘如果为“注销”则调用远程注销过程

End select

End Sub

通过Server程序可分别设置关机, 重启, 注销三个按钮, 单击按钮时分别向Client发送“关机”,“重启”,“注销” 字符串, 这时Client根据接收到的不同字符串可选择执行不同的操作以完成相应的任务[1]

上述VB代码在Win2000/W in98下调试通过, 并经过实际运行效果良好, 在VB环境下利用Winsock控件进行网络编程, 开发一种基于TCP协议的服务器和客户机应用程序, 能够实现服务器端与客户端之间进行数据通讯, 以实现一个简单的远程关机程序, 经扩展可以实现对多台客户机进行控制,初步证实了用Visual Basic对远程控制系统的可设计性和可实现性,对网络远程控制的基本实现方式作了尝试性的探讨, 以上示例采用的方法思路相对简单, 在此基础上略加改造, 可以形成功能复杂的计算机网络管理系统, 用于屏幕图像抓取、 文件传输、 远程监控等。 在网络化时代, 对局域网内部的计算机管理作用重大, 通过远程控制可以有效提高工作效率, 大量节约工作时间。

参考资料

1.

何增颖 .基于Winsock网络通信的远程关机技术 [J].信息通信 , 2007 , 24 (5) :62-64

远程锁定计算机,远程关机相关推荐

  1. 远程锁定计算机,利用Microsoft帐户来远程退出并锁定你的Windows 10电脑

    虽然Windows 10的锁定画面没有智能型手机那么的生动活泼,不过也是一样用滑动或点选来解锁,且解锁后搭配登入画面来达到安全性的防护,因使为了安全起见,离开Windows 10使用[视窗键+L]热键 ...

  2. dos命令远程重启计算机,远程重启、关闭电脑命令、远程重启及其常用计算机命令...

    一:远程重启.关闭电脑命令.远程重启计算机命令 shutdown.exe [-i | -l | -s | -r | -a][-f] [-m [url=file://\\computername]\\c ...

  3. 计算机远程控制原理,计算机远程控制软件排行榜,如何实现远程控制桌面?

    随着互联网技术的发展,计算机远程控制在我们日常工作和生活中的应用越来越广泛,关于计算机远程控制软件排名情况也是很多用户比较关心的东西.通过实现计算机远程控制,我们可以实现对远程计算机的维护操作,同时可 ...

  4. 锁定计算机后 关机任务不执行,定时关机3000常见问题(一)

    定时关机3000是一款专业的电脑定时自动关机软件,具有定时关机.电脑管理.时间限制和开关机日志分析四个强大功能,能够满足各种对电脑定时关机有需求的用户,堪称是家长和电脑管理人员的好帮手! 定时关机30 ...

  5. 电脑锁定计算机键被改了,电脑热键被修改了如何恢复,电脑的ctrl+alt+delete快捷键变成锁定计算机、关机、重启的选项界面了。郁闷...

    满意答案 oystl3187 2013.09.05 采纳率:57%    等级:11 已帮助:4491人 方案一 "开始→运行"框中键入Gpedit.msc命令打开组策略窗口,找到 ...

  6. win10锁定计算机命令,锁定Windows 10 PC的10种方法

    离开时,锁定Windows 10 PC是保护计算机安全的最佳方法.这不会退出或中断任何正在运行的应用程序,您必须输入PIN或密码才能通过锁定屏幕.您可以通过以下10种方式锁定计算机. 在"开 ...

  7. 远程关闭计算机提示拒绝访问权限,如何解决shutdown远程关机win10拒绝访问的问题...

    win10系统自带一个名为Shutdown.exe的程序,可以用于关机操作.但最近有网友却表示说自己想要通过shutdown进行远程关机win10系统时却出现了被拒绝访问的情况,不知道怎么解决很苦恼, ...

  8. 远程关闭计算机提示拒绝访问权限,shutdown远程关机win10系统拒绝访问最佳解决方法...

    win10系统功能强大,能够实现很多让用户看起来很不可思议的操作,其中就包括通过shutdown命令进行win10系统的远程使用,但是近日有用户想要通过shutdown进行远程关机win10系统时却被 ...

  9. 计算机远程用户关机指令,详细介绍一个远程关机命令

    介绍一个比较好用的命令,以前经常用,今天突然看到以前写的文档,就把这个拿出来分享一下,大家都知道windows server服务器经常会卡死,导致远程连接不上,但是又能ping通,然后我就试着从在同一 ...

最新文章

  1. 七天快排优化真的存在!
  2. 做弱电机房工程的时候,如何解决机房称重问题?
  3. 自定义EventSource(三)IncrementingEventCounter
  4. jmeter上传文件搞了一天,才搞定,没高人帮忙效率就是低,赶紧记下来,以备后用...
  5. 2020年短视频及电商直播趋势报告
  6. 什么是对象存储OSS-对象存储 OSS > 产品简介 > 什么是对象存储OSS
  7. csdn博客改用户名,取名字慎重
  8. Qt引入图标字体包iconfont
  9. Microsoft Virtual WiFi Miniport Adapter 使用方法
  10. 字节跳动一道Python面试题
  11. (二)Execute
  12. Robin六种常用负载均衡算法源码解析
  13. 无线网络中信噪比(SNR)计算
  14. 2019阿里校招测评——光明小学接力赛(Java)
  15. EDiary(电子日记本)终于发布
  16. user guide 说明
  17. 微信和支付宝对我们生活产生翻天覆地的改变
  18. 29岁女子征婚火了:父母开厂有两套房 介绍费给2万
  19. 安天发布措施紧急应对新型勒索软件“wannacry”
  20. baum welch java_Baum-Welch的实施示例

热门文章

  1. VB关于桌面的一些操作
  2. 【史上最全】macOS 常用键盘快捷键大全 - 最值得你记住的 Mac 常用快捷键组合
  3. 导入Oracle数据库中的汉字都是问号
  4. 微信小程序一键抠图(进阶),抠图完成之后自定义背景合成新图并下载到本地
  5. Deepin wine QQ崩溃卡死的原因之一
  6. C++作业: 五人合伙夜间捕鱼,天亮前因劳累在河边相继分别找地方睡去
  7. mysql check column exists_Mysql exists用法小记
  8. plot 绘制 混淆矩阵,通过plt.figure调整画布大小和图片清晰度
  9. kalilinux炫酷壁纸_Kali linux的简单美化,主题下载
  10. Android4获取data目录与外部储存卡目录