配置文件
配置文件
徠用戶配置文件就是在用戶登錄電腦時,或是用戶在使用軟體時,軟體系統為用戶所要載入所需環境的設置和文件的集合。它包括所有用戶專用的配置設置,如程序項目、屏幕顏色、網路連接、印表機連接、滑鼠設置及窗口的大小和位置等。
配置文件即對不同對象進行不同配置的文件。
配置文件FAQ
用戶配置文件
問:什麼是用戶配置文件?
答:
當你第一次登錄到一台基於Microsoft Windows XP、Windows 2000或Windows NT? Workstation的計算機上時,系統就會為你創建一個專用的配置文件。來保存用戶的屏幕顏色、網路連接、印表機連接、滑鼠設置及窗口的大小和位置等等。
問:配置文件都有什麼不同的區別?
答:有三種主要的配置文件類型:
·本地用戶配置文件。在用戶第一次登錄到計算機上時被創建,這個本地用戶配置文件被儲存在計算機的本地硬碟驅動器上。任何對本地用戶配置文件所作的更改都只對發生改變的計算機產生作用。
·漫遊用戶配置文件。一個本地配置文件的副本被複制及儲存在網路上的一個伺服器共享上。當用戶每次登錄到網路上的任一台計算機上時,這個文件都會被下載,並且當用戶註銷時,任何對漫遊用戶配置文件的更改都會與伺服器的拷貝同步。漫遊用戶配置文件要求這台計算機是Windows NT域或Active Directory?的一個成員。
·強制用戶配置文件。是一種特殊類型的配置文件,使用它管理員可為用戶指定特殊的設置。只有系統管理員才能對強制用戶配置文件作修改。當用戶從系統註銷時,用戶對桌面做出的修改就會丟失。
第四種類型的配置文件是一個臨時的配置文件,只有在因一個錯誤而導致用戶配置文件不能被載入時才會出現。臨時配置文件允許用戶登錄並改正任何可能導致配置文件載入失敗的配置。臨時配置文件在每次會話結束后都將被刪除o註銷時對桌面設置和文件所作的更改都會丟失。
問:我查看了"Documents and Settings"文件夾,發現有許多配置文件。它們都是做什麼用的?
答:Windows為每個登錄到計算機上的用戶都創建了一個配置文件。除這些配置文件外,還有一些"特殊"的配置文件:
o默認用戶。默認用戶配置文件被用作任何新用戶的起始點。當一個用戶第一次登錄到計算機時,Windows將創建一個新文件夾,用來儲存新用戶的配置文件,並且將默認的配置文件複製到這個新文件夾中。用戶對默認配置文件所作的更改都被記錄到用戶的拷貝中。預設情況下,默認用戶配置文件的屬性是隱藏的。
o所有用戶。每個用戶的"開始"菜單和桌面包含所有項目,這些內容是從"所有用戶"的配置文件以及他或她自己的配置文件中來的。從"所有用戶"的配置文件中取得的項目被作為公用程序項,系統上的每個用戶都能看到這些。如果你想要保證每個登錄的用戶都能訪問一個程序或文件,那麼就將它的快捷方式放進"所有用戶"的配置文件中即可,但是一定要小心,如果一個用戶刪除了此快捷方式或文件,那麼對所有用戶來說,它都會被刪除。
o網路服務和本地服務。網路服務和本地服務的配置文件是由Windows XP為兩個新的內置賬號自動創建的,它們被服務控制管理器用來管理本地系統賬號不需要運行的服務。這些配置文件需要由系統來運行,並且不應當被修改。默認情況下,所有這些配置文件都是隱藏的。
問:我不喜歡這些配置文件,能不能像在Windows 95/98/Me中那樣,只要有一個配置文件就能用於所有用戶?
答:不能實現。用戶配置文件是Windows 2000和Windows XP的一個基本部分。如果你不希望每個用戶都有他或她自己單獨的配置文件,只需簡單地讓每個用戶以相同的用戶賬號進行登錄即可。這將給你與Windows 95/98/Me相類似的體驗。
問:我安裝了一個應用程序,並且我能看到這個程序的快捷方式,但其他用戶卻看不到,為什麼?
徠答:這是因為,此程序只為你的配置文件安裝,而不是為所有用戶。在Windows XP和Windows 2000中,每個用戶都有他或她自己個人的開始菜單。一些應用程序將在安裝時提示你決定是否為所有用戶安裝,或者是僅為當前用戶安裝。
你可以從你的Start Menu中將快捷方式簡單地複製到All Users Profile的Start Menu(通常是C:/Documents and Settings/All Users/Start Menu)中。
問:如何查看我的配置文件的內容?
答:每個使用Windows資源管理器的人,可從"我的電腦"進入到C:/Documents and Settings/,找到你的用戶名,或者單擊"開始"按鈕,選擇"運行",敲入%USERPRoFILE%,然後按
回車鍵。就會打開一個顯示你的配置文件內容的窗口。
問:我重新安裝了Windows,現在我的所有設置和文件都不見了o我怎樣才能找回它們?
答:如果你在現有的安裝上重新安裝了Windows,則配置文件可能還保留著。使用Windows資源管理器,進入到C:/Documents and Settings/,然後查找與你的用戶名相匹配的文件夾。你就可以從這個文件夾中複製任何文件到新的配置文件中。
問:在哪能找到關於用戶配置文件的更多信息?
答:請在Windows XP站點上查閱白皮書:在Windows 2000環境中管理Windows XP的用戶數據和設置。
漫遊配置文件
問:我如何配置一個漫遊用戶配置文件?
答:你可以使用下面的步驟配置漫遊配置文件。
若要為用戶配置一個漫遊配置文件:
1、在將要儲存用戶配置文件的伺服器上創建一個文件夾。這將是一個頂級的文件夾,其中包含了所有單獨的用戶配置文件。
2、將這個文件夾配置成為一個共享的文件夾,並且授予所有用戶"完全控制"的許可權。
3、打開Active Directory用戶和計算機控制台插件,然後找到目標用戶。
4、右鍵單擊用戶名,然後再彈出的快捷菜單上單擊"屬性"。
5、單擊"配置文件"選項卡。
6、在配置文件路徑欄中,輸入用戶配置文件將要被儲存的網路共享的路徑。例如,對於一個網路名是Jdoe的用戶來說,輸入下面的路徑"//NetworkShare/Profiles/%username%",配置文件將創建一個叫做Jdoe的目錄,該目錄在伺服器上被共享並且用於儲存用戶配置文件。
關於配置漫遊用戶配置文件的更多信息,清查閱用戶數據和用戶設置的循序漸進指南。
問:我正在使用漫遊配置文件,可是登錄速度很慢o怎樣才能讓它更快一些?
答:登錄的速度與配置文件的大小及網路的速度有直接的關係。你可以做許多事情來限制配置文件的大小:
·重定向大型的文件夾,如"My Documents",這將會減少登錄和註銷時將數據複製到計算機或從計算機複製數據的數量。
·將大的文件從漫遊配置文件中排除出來。默認情況下,大型的文件夾,如"Local Settings"、"Temp"和"Temporary Internet Files"不會被漫遊。你可以使用"在漫遊配置文件中排除目錄"的組策略設置來添加一個新文件夾到排除列表;一旦這些文件夾被包含在策略中,在登錄時它們就將被複制到本地計算機上,並且註銷時不會複製回伺服器。
·如果你通過一個慢速連接登錄到伺服器,則設置合適的"慢速網路"超時設置。
·不要在用戶配置文件中保存大文件。
問:如何處理關於用戶配置文件的問題?
答:處理的第一步應該是在客戶計算機上檢查應用程序事件日誌,然後檢查是否存在錯誤。如果這是一個漫遊配置文件,請檢查是否為其設置了正確的許可權(具體信息可以在用戶數據和設置白皮書中找到)o導致漫遊用戶配置文件出錯的最常見的一個原因就是在配置文件上設置了錯誤的許可權。除了在應用程序事件日誌中記錄事件外,用戶配置文件還提供了一個詳細的日誌來幫助處理問題。如果希望為用戶配置文件創建一個詳細的日誌文件,您可以:
o啟動註冊表編輯器,定位下面的路徑:
HKEY_LoCAL_MACHINE/Software/Microsoft/WindowsNT/CurrentVersion/Winlogon
o創建一個叫做UserEnvDebugLevel的新值,將其標記為REG_DWoRD,然後將它的值以16進位格式設置為30002。
o這個日誌文件就是%windir%/debug/usermode/userenv.log
各種類Unix系統上有很多不同的配置文件格式,不同的應用程序或者服務也可能使用各自單獨的格式,但大多遵從使用純文本文件的傳統,常用簡單的鍵值對格式、類似.cnf、.conf、.cfg、.cg、.ini的文件擴展名。這些配置文件格式幾乎都允許使用註釋,所以可以用前綴註釋字元的方法來關閉設置。默認的配置文件中通常也都有詳實的內部文檔,以註釋的形式出現。
MS-DOS本身只依賴一個配置文件:CONFIG.SYS。在MS-DOS 6之前,這個文件只是簡單的鍵值對純文本文件(例如DEVICEHIGH=C:\DOS\ANSI.SYS),在此之後才引入了INI格式。MS-DOS中還有一個名叫AUTOEXEC.BAT的標準純文本批處理文件,用於在啟動時執行一系列命令。這兩個文件一直保留到了基於MS-DOS的Windows 98SE。
早期的Microsoft Windows系列使用大量的純文本INI文件,是配置操作系統和應用程序特性的主要手段。現在的Windows中仍保留著讀寫這些配置文件的API,但從1993年起,微軟開始鼓勵開發者從使用INI文件轉向使用註冊表。
一個配置文件,是由兩部分組成的:
1. 註釋內容:在示例文件中是由 # 來單行註釋表示的,用來解釋一些必要內容。
2. 配置項內容:配置內容其實就是一個一個的鍵值對的記錄,左側是 key 值,比如這裡的 name 值,右側是 value 值,對應這裡的 wangying。而在鍵值對中間,間插了一個符號 =(當然可以自定義的)來分割 key 值和 value 值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include #include #include #include #include "Config.h" int main() { // 打開一個寫文件流指向 config.ini 文件 std::string strConfigFileName("config.ini"); std::ofstream out(strConfigFileName); // 初始化寫入註釋 out << "# test for config read and write\n"; // 寫入一對配置記錄: name = wangying out << "name = wangying\n"; out.close(); // 初始化 Config 類 Config config(strConfigFileName); // 讀取鍵值 std::string strKey = "name"; std::string strValue; strValue = config.Read std::cout << "Read Key " << strKey << "'s Value is " << strValue << std::endl; // 寫入新鍵值對 std::string strNewKey = "age"; std::string strNewValue = "23"; config.Add // 將 Config 類的修改寫入文件 out.open(strConfigFileName, std::ios::app); if (out.is_open()) { // 利用 Config 類的 << 重載運算符 out << config; std::cout << "Write config content success!" << std::endl; } out.close(); system("pause"); return 0; } |
圖1