A. 我的華碩電腦為什麼關機時老是出現,正在關機阻止程序請點取消,然後下面會出現強制關機和取消的選項
我們有必要先了解一下WINDOWS XP的關機。Windows XP系統通過一個名為Shutdown.exe的程序來完成關機操作(位置在Windows\System下),一般情況下XP的關機是由關機程序shutdown.exe來實現的,關機的時候調用shutdown.exe。由此可知要阻止強行關機就是要取消對shutdown.exe的調用。而筆者發現沖擊波和震盪波的關機重啟都要調用這個程序,於是答案由此而生:
在彈出強行關機的對話框時,快速打開[運行]窗口(按下CTRL+R),輸入「shutdown.exe -a」(注意有一個空格),回車,這時你可以看到強行關機的對話框消失了。然後就可以輕松地幹掉沖擊波和震盪波。
當然這種方法不僅可用於此,其它一些原因引起的關機也如法炮製。
既然談到shutdown.exe,有必要將其它重要參數介紹一下:
shutdown.exe -a 取消關機
shutdown.exe -f 強行關閉應用程序。
shutdown.exe -m \計算機名 控制遠程計算機。
shutdown.exe -i 顯示圖形用戶界面,但必須是Shutdown的第一個參數。
shutdown.exe -l 注銷當前用戶。
shutdown.exe -r 關機並重啟。
shutdown.exe -t時間 設置關機倒計時。
shutdown.exe -c"消息內容" 輸入關機對話框中的消息內容(不能超127個字元)。
比如你的電腦要在23:00關機,可以選擇「開始→運行」,輸入「at 23:00 Shutdown -s」,這樣,到了23點,電腦就會出現「系統關機」對話框,默認有30秒鍾的倒計時並提示你保存工作。如果你想以倒計時的方式關機,可以輸入「Shutdown.exe -s -t 3600」,這里表示60分鍾後自動關機,「3600」代表60分鍾。
如果想取消的話,可以在運行中輸入「shutdown -a」。另外輸入「shutdown -i」,則可以打開設置自動關機對話框,對自動關機進行設置。
雖然shutdown.exe是Windows XP下的程序,在Windows2000中是調用Windows下System中的Shell32.dll文件來實現關機的,例如「indir\RunDLL32.exe indir\System\Shell32.dll,SHExitWindowsEx 8」,但在Win2000也可利用它,方法如下:
在WinXP安裝目錄下的System32文件夾中找到Shutdown.exe,將它復制到Win2000安裝目錄下的System32文件夾中,在「運行」中輸入「Shutdown.exe」,即可像在Windows XP中一樣使用該程序了。
當然,shutdown.exe還有一些強大的功能,讀者可以進一步實踐探討,充分利用 shutdown.exe 的強大功能。
==
關機文件SHUTDOWN常用參數
在Windows XP中,新增了一條命令行工具「shutdown」,其作用是「關閉或重新啟動本地或遠程計算機」。利用它,我們不但可以注銷用戶,關閉或重新啟動計算機,還可以實現定時關機、遠程關機。
該命令的語法格式如下:
shutdown [-i |-l|-s |-r |-a] [-f] [-m [\\ComputerName]] [-t xx] [-c "message"] [-d[u][p]:xx:yy] 其中,各參數的含義為:
-i 顯示圖形界面的對話框。
-l 注銷當前用戶,這是默認設置。-m ComputerName 優先。
-s 關閉計算機。
-r 關閉之後重新啟動。
-a 中止關閉。除了 -l 和 ComputerName 外,系統將忽略其它參數。在超時期間,您只可以使用 -a。
-f 強制運行要關閉的應用程序。
-m [\\ComputerName] 指定要關閉的計算機。
-t xx 將用於系統關閉的定時器設置為 xx 秒。默認值是 20 秒。
-c "message" 指定將在「系統關閉」窗口中的「消息」區域顯示的消息。最多可以使用 127 個字元。引號中必須包含消息。
-d [u][p]:xx:yy 列出系統關閉的原因代碼。
首先,我們來看一下該命令的一些基本用法:
1、注銷當前用戶
shutdown - l
該命令只能注銷本機用戶,對遠程計算機不適用。
2、關閉本地計算機 shutdown - s
3、重啟本地計算機
shutdown - r
4、定時關機
shutdown - s -t 30
指定在30秒之後自動關閉計算機。
5、中止計算機的關閉
有時我們設定了計算機定時關機後,如果出於某種原因又想取消這次關機操作,就可以用 shutdown - a 來中止。如:
shutdown -s – t 300 設定計算機在5分鍾後關閉。
Shutdown – a 取消上述關機操作。
以上是shutdown命令在本機中的一些基本應用。前面我們已經介紹過,該命令除了關閉、重啟本地計算機外,更重要的是它還能對遠程計算機進行操作,但是如何才能實現呢?
在該命令的格式中,有一個參數[-m [\\ComputerName],用它可以指定將要關閉或重啟的計算機名稱,省略的話則默認為對本機操作。於是,我用以下命令試了一下:
shutdown –s –m \\netproxy -t 30
(在30秒內關閉計算機名為netproxy的機器;註:netproxy為區域網內一台同樣裝有Windows XP的電腦)
但該命令執行後,計算機netproxy一點反應都沒有,我的屏幕上卻返回這樣一句話:Access is denied (拒絕訪問)。
為什麼會出現這種情況呢?我想了半天,四處查找有關的資料,終於發現,在Windows XP默認的安全策略中,只有管理員組的用戶才有權從遠端關閉計算機,而一般情況下我們從區域網內的其他電腦來訪問該計算機時,則只有guest用戶許可權,所以當我們執行上述命令時,便會出現「拒絕訪問」的情況。
找到問題的根源之後,解決的辦法也很簡單,只要在客戶計算機(能夠被遠程關閉的計算機,如上述的netproxy)中賦予guest用戶遠程關機的許可權即可。這可利用Windows XP的「組策略」或「管理工具」中的「本地安全策略」來實現。下面以「組策略」為例進行介紹:
1、單擊「開始」按鈕,選擇「運行」,在對話框中輸入「gpedit.msc」,然後單擊「確定」,打開「組策略編輯器」。
2、在「組策略」窗口的左窗格中打開「計算機配置」—「Windows 設置」—「安全設置」—「本地策略」—「用戶權利指派」。
3、在「組策略」窗口的右窗格中選擇「Force shutdown from a remote system (從遠端系統強制關機)」,雙擊。
4、在彈出的對話框中顯示目前只有「Administrators」組的成員才有權從遠程關機;單擊對話框下方的「添加用戶或組」按鈕,然後在新彈出的對話框中輸入「guest」,再單擊「確定」。
5、這時在「從遠端系統強制關機」的屬性中便添加了一個「guest」用戶,單擊「確定」即可。
6、關閉「組策略」窗中。
通過上述操作後,我們便給計算機netproxy的guest用戶授予了遠程關機的許可權。以後,我們要遠程關閉計算機netproxy,只要在網路中其他裝有Windows XP 的電腦中輸入以下命令即可:
shutdown -s –m \\netproxy -t 30 (其他參數用法同上)
這時,在netproxy計算機的屏幕上將顯示一個「系統關機」的對話框,提示「系統即將關機。請保存所有正在運行的工作,然後注銷。未保存的改動將會丟失。關機是由netproxy\guest初始的。」在對話框下方還有一個計時器,顯示離關機還有多少時間。在等待關機的時間里,用戶還可以執行其他的任務,如關閉程序、打開文件等,但無法關閉該對話框,除非你用shutdown –a命令來中止關機任務。
最後,有一點要說明的是,shutdown命令不但可以遠程關閉裝有Windows XP系統的計算機,它還可以遠程關閉裝有Windows 2000系統的計算機(對於Win9X嘛,好像不適用)。有關Windows 2000客戶計算機上的一些設置,操作方法同上,這里就不再多說了。
另外shutdown作為一個外部命令(其對應文件為\Windows\system32文件夾下的shutdown.exe),我們還可將它復制到Windows 2000的機器上,這樣,在裝有Windows 2000系統的機器之間便也能相互實現遠程關機。