如何使用asp关闭、重起远程服务器?

如何使用asp关闭、重起远程服务器(NT系统)?

先把 winxp 里的 shutdown.exe 复制过来
文件放在 c:\shutdown.exe
asp代码如下

1   
2Set WinShell = server.CreateObject("Wscript.Shell")   
3iss=WinShell.Run("c:\shutdown.exe -r -f",0,true)   
4response.write iss   

现在执行机器是没有反应的

因为在winNT的构架的服务器里 有用户的权限问题

因此以下操作将因为没有权限,而执行失败

因此 要想办法提升 IIS 的权限,使其拥有重起计算机的权限。

进入“本地用户和组” 将 “Internet 来宾帐号”和 “启动 IIS 进程帐号”都加到 administator组里,然后重新启动计算机。

恭喜!!这样 asp就能关闭、重起远程服务器了!

----------------------------
附录:你可以自己用写一个程序,重起、关闭服务器哦。XP里的shutdown.exe 用起来不是很好。

下面是 VC++ 代码:

ShutDown1()
{
TOKEN_PRIVILEGES tkp,tkpnewbutignored;
HANDLE hdltokenhandle;
LUID tmpluid;
BOOL rc;
DWORD lbufferneeded;
HANDLE hdlprocesshandle = GetCurrentProcess();
rc = OpenProcessToken(hdlprocesshandle,TOKEN_ADJUST_PRIVILEGES &brvbarTOKEN_QUERY, &hdltokenhandle);
rc = LookupPrivilegeValue("","SeShutdownPrivilege", &tmpluid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Luid = tmpluid;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
rc = AdjustTokenPrivileges(hdltokenhandle,FALSE,&tkp,sizeof(tkpnewbutignored),&tkpnewbutignored, &lbufferneeded);

ExitWindowsEx(EWX_REBOOT &brvbarEWX_FORCE,0);//重启

//ExitWindowsEx(EWX_SHUTDOWN &brvbarEWX_FORCE &brvbarEWX_POWEROFF,0);//关机

}

Published At
Categories with Web编程
comments powered by Disqus