2007年3月30日 星期五

Windows 2000/NT/XP管理員密碼丟失解決方法

經常被問即管理員密碼丟失怎麼辦?下邊就windows 2000/nt/xp系統下的解決方法作一個簡單的總結,當然並不全面。
1:清除sam檔案:
WinNT系列的系統賬戶訊息是存在%systemroot%\system32\config\sam這個註冊表檔堛滿C如果系統堥S有重要的賬戶,或是賬戶比較少,用移除%systemroot%\system32\config\sam的方法是比較簡單的,不過因為系統會還原為祇有administrator(密碼為空)和guest二個賬戶,所以有些常式因為牠們所依賴的賬戶丟失了,如iis、vmware就不能啟動了。
原來聽說這種方法只能適用於nt workstation系列(2kpro),不能用於server,我在2000professional和2000 advanced server上試驗都是成功的。不知道為什麼會有上述說法,可能是作用中目錄ad下不行吧。
當然首先你要能夠存取系統分區,來把sam檔案改名或是移除。如果是fat32、fat分區,使用98啟動磁片就行了。如果是ntfs分區,可以使用winternal的ntfs for dos、ntfs for 98或是是支援ntfs的啟動光碟,再或是掛到其它win2000、linux等機器上,再再或是重新裝設一個新的win2000。

2:專用工具:
windows管理員密碼丟失還有一個解決方法是使用Petter Nordahl-Hagen的The Offline NT Password Editor(http://home.eunet.no/~pnordahl/ntpasswd/),這個工具是離線修改註冊表檔sam來設定密碼的。需要用他的映像檔案製作啟動磁片來引導,進而存取ntfs分區重新設定密碼;雖然作者經常更新他的常式,不過我還是會擔心他直接作業sam文檔的安全性,可能有時會導致系統出錯。可能還有其它類似工具吧,恕我無知。

3:還有一種想法就是用一個修改密碼的小常式來取代系統啟動的必要常式,然後系統啟動時就會取代密碼,隨後把被取代的常式在還原就行了。當然首先你還是要能夠存取系統分區,來取代隨系統啟動的常式。
取代系統啟動的必要常式的一種方法是我寫的一個清除administrator密碼的小常式(CleanPwd http://www.BingleSite.net/myprog/CleanPwd/CleanPwd.rar),他所作的就是把administrator密碼清空。使用方法如下:
1):用雙系統或是啟動磁片或是掛到別的系統上,如果是NTFS分區其它系統或啟動磁片要能讀寫NTFS分區,把windows裝設目錄下的system32\svchost.exe改名svchost.bak.exe備份,把CleanPwd.exe拷貝成svchost.exe。

2):啟動該系統,就把administrator的密碼清空了,可以直接登陸。

3):把svchost.bak.exe 存回就行了(如果使用取代的是svchost,最好再啟動rpc伺服)。為什麼選用svchost.exe而不是其它常式,因為每個windows2000系統都有這幾個行程,System(kernel Executive and kernel)、smss(session manager)、csrss(win32 subsystem)、winlogon(logon process)、services(Service control manager)、lsass(local security authentication server ) 如果任何一個被殺掉或是出錯,系統將重新啟動。不過在lsass啟動之前你不能修改密碼,所以不能選用這幾個常式。
另外系統中一般還有以下一些常式:svchost.exe(Remote Procedure Call (RPC) 還有其它一些伺服)、WBEM\WinMgmt.exe(Windows Management Instrumentation)、mstask.exe(Task Scheduler)、regsvc.exe(Remote Registry Service) 可能還有其它伺服程式,你可能禁止了除RPC之外的其它伺服,但不會禁止rpc,否則系統工作就不正常了。所以我選擇了svchost,如果你知道其它伺服會自動啟動,你也可以選擇它。當然如果系統裝設了殺毒軟體的話,你取代殺毒軟體也可以,因為一般殺毒軟體都會在系統啟動是啟動殺毒防火牆來殺毒的。

4):其它:有這個想法是幾個月之前了,不過一直沒有寫這個常式:(常式執行會在c:\CleanPwd.txt記一個簡單的日誌,我也附了源碼,你可以任意修改它以滿足自己的要求,比如加入一個使用者而不是修改管理員的密碼(或是你把管理員改名了)。

4:我還在一個網站上看到這樣一個方法:就是把%systemroot%\system32\logon.scr取代為cmd.exe或是explorer.exe,然後在系統登陸處等待,過一會,系統就會去執行logon.scr這個屏保,因為你取代了這個屏保檔案,所以實際上執行的是cmd.exe或是explorer.exe,並且是localsystem權限,于是你可以隨便了,最簡單的就是在cmd.exe堸鶡熡et user administrator "",成功後管理員密碼也被清空了,關閉cmd或是explorer就可以用空密碼登陸了。其實這種方法和上邊的那種思路是一致的。

=============code begin=======================
#include
#include
#include
#include
#include
#pragma comment(lib, "Netapi32.lib")

#define LOF_FILE "c:\\cleanpwd.txt"

DWORD SetUserPwd(char *user, char *pass);

void banner(FILE *fp)
{
if(NULL == fp)return;

fprintf(fp, "Clean administrator's password tool 1a. for lost password.\n");
fprintf(fp, " by bingle@email.com.cn\n");
fprintf(fp, "Website: www.BingleSite.net\n");
}

int main(int argc, char *argv[])
{
banner(stderr);

FILE *fp = fopen(LOF_FILE, "a");
if(fp)
{
fprintf(stderr, "Log in file %s\n", LOF_FILE);
banner(fp);
}

if(!fp) fp = stderr;

char buff[256];
fprintf(fp, "%s: clean administrator's password ", _strtime(buff));
DWORD n = SetUserPwd("administrator", "");
if(NERR_Success == n) fprintf(fp, "ok.\n");
else fprintf(fp, "failed, error:%d\n", n);

fclose(fp);

return -1;
}


DWORD SetUserPwd(char *user, char *pass)
{
wchar_t wuser[PWLEN], wpass[PWLEN];
USER_INFO_1003 ui;

mbstowcs(wuser, user, strlen(user)+1);
mbstowcs(wpass, pass, strlen(pass)+1);
ui.usri1003_password = wpass;

return NetUserSetInfo(NULL, wuser, 1003, (LPBYTE)&ui, NULL);
}

2007年3月16日 星期五

MSN無法登入之錯誤碼辨別大全

================================================================
-錯誤碼---------|----------------------------原因&解決方法----------------------------|
================================================================
80048820 這個為時間同步問題, 請把你的電腦時間調整成正確的當地時
間即可恢復正常(不知道時間請撥打中原標準時間電話熱線)
XP可按圖片D的匡起部分
不行的話請下載檔案A
------------------------------------------------------------------------------------------------
如果以上方法無法修復請嘗試這個
控制台的"新增移除程式"點選"MSN Messnger7.5下的{按這裡取得支援資訊} 然後 點選{修護},然後 關閉防火牆
------------------------------------------------------------------------------------------------
80072EFD Internet網際網路選項裡面->連線->區域網路設定中的Proxy是否
81000365 有打勾, 有的話取消打勾
8100035b
------------------------------------------------------------------------------------------------
81000306 設定電腦時間和網路時間同步, 開啟MSN->工具->選項->連線->進階設定->把圖A所框的通通清空
81000efd 然後執行另類方法1
81000301 關閉防火牆
確定連上網路, 確定Windows 更新為最新, 確定MSN在那個版本為最新的 例如7.5 分為 7.5.1299和7.5.1599之類的
------------------------------------------------------------------------------------------------
80004005 伺服器過忙/連線閒置過久/連線Delay過久
------------------------------------------------------------------------------------------------
81000370 檢視網際網路選項, 把[內容] 索引標籤的[憑證] 下方[清除 SSL 狀態]
並且到進階標籤的 [安全性]區域確認[檢查伺服器憑證是否被撤銷 (需要重新啟動)] 沒有勾選
而 [使用 SSL 2.0] 和 [使用 SSL 3.0] 都有勾選。 (請看圖片B)
開始->執行->打入cmd 輸入「ipconfig /flushdns」後再按一下 ENTER
------------------------------------------------------------------------------------------------
81000303 刪除暫存的網際網路檔案和 Cookies(看圖片C)
如果相同的問題繼續出現, 請稍後再重新登入
------------------------------------------------------------------------------------------------
81000362 在IE的檔案 功能表上,請確定 [離線工作] 沒有被選取
------------------------------------------------------------------------------------------------
80070190 請到[檢查用]看看是否微系統穩定執行訊息, 然後執行圖片A的動作
------------------------------------------------------------------------------------------------
81000314 伺服器目前無法連線, 等會在嘗試

用 記事本 開「C:\WINDOWS\system32\drivers\etc\hosts」
最後一排加:

65.54.239.80 messenger.hotmail.com
65.54.239.80 dp.msnmessenger.akadns.net

儲存 msn從新連線
------------------------------------------------------------------------------------------------
81000359 你的帳號並沒有被認證
------------------------------------------------------------------------------------------------
81000364 被防火牆阻擋
------------------------------------------------------------------------------------------------
81000377 伺服器有問題(別對你電腦亂動東西= =||)
81000395
------------------------------------------------------------------------------------------------
81000378 聯絡人清單有問題(此為伺服器部分問題)
------------------------------------------------------------------------------------------------
8100038d 密碼大小寫有問題
------------------------------------------------------------------------------------------------
81000394 你忘記輸入密碼
------------------------------------------------------------------------------------------------
80004005 請下載檔案A並執行
如果不成功請重新安裝MSN
還是不行就請重新安裝IE
XP安裝指令:
開始->執行->打入rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %windir%infie.inf並且按確定
------------------------------------------------------------------------------------------------
80048848 軟體防火牆阻擋, 網路無法連線
------------------------------------------------------------------------------------------------
80070190 Proxy無法讓MSN連線, 關掉Proxy選項(網際網路選項)
------------------------------------------------------------------------------------------------
80070193 伺服器不允許你的proxy連線, 關掉proxy並確認伺服器是否運作正常(利用檢查用之連結)


另類無法登錄之解決辦法:
方法1:
C:\Documents and Settings\[你的電腦使用者名稱]\Application Data\Microsoft\MSN Messenger 把內部的資料夾刪除

方法2:
開始->執行
打入
regsvr32 softpub.dll
regsvr32 mssip32.dll
regsvr32 initpki.dll <~ 這個會執行比較久(真的很久= =), 有的人會查無此檔(因為盜版的windows的關係)

方法3: 請確認你打入的帳號是否大小寫打錯

無法安裝解決辦法:
錯誤碼1601
開始->執行
打入Msiexec /unregserver
然後下载InstMsiW.exe(Office光碟片內部有)
再次 開始->執行 打入msiexec.exe /regserver

錯誤碼:1603
關閉所有間諜軟體偵測程式
重新執行 MSN Messenger 安裝
============================================
圖片區
============================================
圖片A:

圖片B:

圖片C:

圖片D:


============================================
檔案區:
============================================
檔案A

============================================
連結區:
============================================
檢查用





MSN 81000314錯誤解決方法
msn登錄時候經常會出現81000314錯誤,
1.你的電腦上的“日期/時間屬性”是否設置正確:雙擊時間,檢查日期和
時間是否正確設置。

2.如果你的帳號和密碼沒有在MSN中保存,你需要確認你輸入的帳號和密碼
是正確的(請注意大小寫字母及帳號的尾碼)

3.禁用您流覽器中的“自動檢測”設置。對於 Internet Explorer 用戶,
請單擊 IE“工具”功能表、單擊“Internet 選項”、單擊“連接”選項卡、單擊
“局域網設置”按鈕、然後清除“自動檢測設置”框。

4.清除IE cache和Cookies:打開Internet Explorer流覽器,按工具功能表,
然後選擇“Internet 選項”,點擊“刪除檔”按鈕和“刪除 Cookies”按
鈕。

5.檢查 IE 安全設定:打開Internet Explorer流覽器,按工具功能表,選擇
“Internet 選項”,選擇“高級”,拖動捲軸到安全選區,證實“檢查服務
器證書吊銷”沒有被選中,同時證實“使用 SSL 2.0”和“使用 SSL 3.0”被選
中。然後按“確定”。

6.點擊“開始”--“運行”,鍵入:
regsvr32 softpub.dll
然後按“確定”

7.檢查錯誤的代理伺服器設置。在 MSN Messenger“工具”功能表上,單擊
“選項”。在“連接”選項卡上,確保您清除了“我使用代理伺服器”核取方塊。

8.您可以禁用
應用程式、防火牆或打開防火牆相應埠,然後嘗試連接到 .Net Messenger
Service。

9.如果您為局域網使用 ICS 或路由器,則可能需要調整一些設置或更新硬
件/固件驅動程式。

10.如果您的 Passport 未被識別,請登錄 Passport 站點
http://www.passport.com ,並確認在該處可被識別。如果在該處可被識別,但
仍不能登錄到 .NET Messenger Service,則可能是消息伺服器暫時關閉正在維
護或達到了 Internet 的最大通流量(使用率高峰期間)。請稍後再試。也可以
檢查伺服器狀態頁以查看伺服器的最新資訊。

11.如果在Passport 站點仍然不可識別,請到這裏:
http://memberservicesnet.passport.com/memberservice.srf ,然後選擇:
“我忘記了密碼”。