|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2004-07-30, 11:56 PM | #1 |
榮譽會員
|
如何用139連接阜遠端重新啟動NT伺服器
最近很多朋友問我: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 LookupPrivilege類型(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; |
送花文章: 3,
|