如何使用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 ¦TOKEN_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 ¦EWX_FORCE,0);//重启
//ExitWindowsEx(EWX_SHUTDOWN ¦EWX_FORCE ¦EWX_POWEROFF,0);//关机
}