网络编程远程关机和开机.ppt

网络编程远程关机和开机.ppt

ID:57614860

大小:654.00 KB

页数:19页

时间:2020-08-29

网络编程远程关机和开机.ppt_第1页
网络编程远程关机和开机.ppt_第2页
网络编程远程关机和开机.ppt_第3页
网络编程远程关机和开机.ppt_第4页
网络编程远程关机和开机.ppt_第5页
网络编程远程关机和开机.ppt_第6页
网络编程远程关机和开机.ppt_第7页
网络编程远程关机和开机.ppt_第8页
网络编程远程关机和开机.ppt_第9页
网络编程远程关机和开机.ppt_第10页
资源描述:

《网络编程远程关机和开机.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、远程关机和开机授课教师:网络编程——导入在局域网管理软件中,一个最常用的功能就是远程关机和开机功能。一个管理员通常管理几十台电脑,当需要开机或关机时,如果一台一台的操作就太麻烦了,因此通常机房管理软件中都配备了远程开机或关机的功能,管理员只需在一台计算机上操作,就可以控制所有计算机开机、关机或者重启。本章,我们就来介绍一下怎样用C++编程实现远程关机和远程唤醒计算机的功能。本章要点远程关机shutdown用木马程序实现远程关机远程唤醒计算机远程关机——shutdownshutdown命令在WindowsX

2、P中,新增了一条命令行工具“shutdown”,其作用是“关闭或重新启动本地或远程计算机”。利用它,我们不但可以关闭或重新启动计算机,还可以实现定时关机、远程关机。例如,在30秒内关闭计算机名为RANRAN的机器命令是:shutdown–s–m\RANRAN-t30为什么出现“拒绝访问”的情况?要在客户计算机(被远程关闭的计算机)中赋予guest用户远程关机的权限。可利用Windows“组策略”或“管理工具”中的“本地安全策略”来实现。代码详解——InitiateSystemShutdown()实现关闭

3、或重启计算机的功能。如果函数调用成功,则返回值为TRUE;否则,返回值为FALSE。BOOLInitiateSystemShutdown(LPTSTRlpMachineName,LPTSTRlpMessage,DWORDdwTimeout,BOOLbForceAppsClosed,BOOLbRebootAfterShutdown);参数lpMachineName:指定以MULL终止的用来指定要关机的网络名称的字符串。如果为NULL,则该函数关掉本地计算机。参数lpMessage:指向一个要显示在关机对话框

4、中的消息的字符串。参数dwTimeout:指定对话框应该显示的延迟时间(按秒计)。参数bForceAppsClosed:指定对变化未做保存的应用程序是否被强制关闭。如果这个参数为TRUE,则应用程序被关闭。如果参数为FALSE,则显示一个对话框以提示用户关闭这些应用程序。参数bRebootAfterShutdown:指定计算机关机之后是否立即重启。如果参数为TRUE,则计算机重启。如果参数为FALSE,则系统将所有高速缓存刷新到磁盘上,清除屏幕,并且显示一条消息,指示关掉电源是安全的。设置进程访问权限调用

5、InitiateSystemShutdown()函数关闭远程计算机需要先获得SE_SHUTDOWN_NAME权限。涉及到的函数:OpenProcessToken()LookupPrivilegevalue()AdjustTokenPrivileges()代码详解——OpenProcessToken()函数此函数可以得到当前进程的访问令牌的句柄BOOLOpenProcessToken(HANDLEProcessHandle,DWORDDesiredAccess,PHANDLETokenHandle);参数P

6、rocessHandle:是要修改访问权限的进程句柄;参数DesiredAccess:指定要进行的操作类型,如要修改令牌,需要指定本参数为TOKEN_ADJUST_PRIVILEGES。参数TokenHandle:是返回的访问令牌指针;代码详解——AdjustTokenPrivileges()函数调用此函数可以对这个访问令牌进行修改BOOLAdjustTokenPrivileges(HANDLETokenHandle,BOOLDisableAllPrivileges,PTOKEN_PRIVILEGESNe

7、wState,DWORDBufferLength,PTOKEN_PRIVILEGESPreviousState,PDWORDReturnLength);参数TokenHandle:是访问令牌的句柄。参数DisableAllPrivileges:决定是进行权限修改还是除能(Disable)所有权限。参数NewState:指明要修改的权限参数BufferLength:是结构PreviousState的长度。参数PreviousState:存放修改前的访问权限的信息,可空。参数ReturnLength:为实际P

8、reviousState结构返回的大小。代码详解——LookupPrivilegevalue()函数获得一个权限对应的LUID值BOOLLookupPrivilegevalue(LPCTSTRlpSystemName,LPCTSTRlpName,PLUIDlpLuid);参数lpSystemName:是系统的名称,如果是本地系统只要指明为NULL。参数lpName:是指明了权限的名称参数lpLuid:是返回LUID的指针。远程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。