电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 电脑学院 > 服务器技术 > 正文
如何用139端口远程重起NT服务器
如何用139端口远程重起NT服务器
2006-11-20 9:45:06  文/佚名   出处:电脑软硬件应用网   
  最近很多朋友问我: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;
}
  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    多图详解苹果“雪豹”服务器系统安装…
    支招:如何搭建九层高的服务器机架?
    IBM System x3200M2服务器常见问题解…
    IBM刀片服务器搭建理想动态基础架构
    Windows服务器组件安全设置策略
    配置WSUS服务器客户端计算机进行自动…
    微软WSUS服务器 3.0安装配置详解
    WSUS服务器常见故障
    Serv-U8.0添加匿名用户的技巧
    Serv-U服务器中文乱码问题的解决
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号