定时,您可根据需要自定,如使用 at 命令或编程等。
一、命令行:iisreset /reboot
二、编程:
#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;
}