NewsRhzhi | 先创资讯 | 旧版入口
rhzhi.net
网站首页 | NewsRhzhi | 先创资讯 | 操作系统 | 工具软件 | 办公软件 | 网站设计 | 组网专栏 | 平面设计 | 多 媒 体 | 程序开发 | 硬件资料 | 聊天软件
您现在的位置: 先创网 >> 网络应用 >> 网络安全 >> 文章正文
利用139端口来远程重起NT服务器
赛迪网
2007-11-26 13:35:48文/佚名
    

最近很多朋友问我:NT的机器如果远程管理软件坏了,怎么重起呢?其实,如果服务器的139端口开着,重起是很简单的,步骤如下:

1、net use \\xxx.xxx.xxx.xxx\ipc$ password /user:username

建立一个IPC会话

2、net use H: \\xxx.xxx.xxx.xxx\c$

将对方的C盘映射为自己的H盘

3、copy con h:\reboot.bat

iisreset /reboot

CTRL+Z

在对方的C盘上生成了一个能重启计算机的文件

4、net time \\xxx.xxx.xxx.xxx

得到对方的时间

5、at \\xxx.xxx.xxx.xxx 重起的时间 c:\reboot.bat

重起的时间等于对方的时间加几分钟

6、at \\xxx.xxx.xxx.xxx

看看任务加上没有

7、等......

上面的第三步是only for WIN2K的,如果是NT,你需要用一个特定的重起程序,我们可以自己编写一个reboot.exe来取代reboot.bat,原理很简单,代码如下:

#include "stdio.h"

#include "windows.h"

int main()

{

//定义重起的时候发送给所有用户的消息

LPSTR msg="Reboot Tool By Lion Hook\nhttp://www.xici.net";

//尝试用最简单的API函数重起

if(ExitWindowsEx(EWX_REBOOT, 0))return TRUE;

if(ExitWindowsEx(EWX_REBOOT   EWX_FORCE, 0))return TRUE;

//因为上面的重起不成功,所以需要调整本进程的特权

HANDLE hToken;

TOKEN_PRIVILEGES tkp;

if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES   TOKEN_QUERY, &hToken)) return FALSE;

//获取重起的特权SE_SHUTDOWN_NAME

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);

tkp.PrivilegeCount = 1;

tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);

//判断是NT内核还是9x内核,选择用不同的方式

if(!(GetVersion() & 0x80000000))

InitiateSystemShutdown(NULL, msg, 20, TRUE, TRUE);

else if (!ExitWindowsEx(EWX_REBOOT, 0))

if(!ExitWindowsEx(EWX_REBOOT   EWX_FORCE, 0))

return FALSE;

return TRUE;

}

打印此页 投稿与建议 返回顶部
栏 目 索 引
软件应用 SOFTWARE
Win XP | NT/2003
Win2000 | DOS/Win9x
PowerPoint | Office
Excel | Word
网络软件 | 实用软件
媒体软件 | 系统软件
常用软件 | 办公软件
聊天软件 | 网络安全
新软试用 | Vista
设计在线 DESIGN
Dreamweaver | 3DMax
Photoshop | Flash
平面设计 | 网页设计
多 媒 体 | 精品画廊
精彩专区 SPECIAL
Q Q 专区 | 热门专题
组网玩网 | 程序开发
应用集锦 |
相关文章
关于我们 - 联系方式 - 合作伙伴 - 网站大事记 - 网站地图 - 我要投稿
Copyright ©1997-2008 先创网 All Rights Reserved.
先创科技 版权所有