win7下,個(gè)人的配置文件會(huì)自動(dòng)保存在C:/Users/***XX/AppData/Local/VirtualStore/ProgramFiles/MyApp/***.ini里,而原先安裝在C:/ProgramFiles/MyApp/***.ini則沒有改變,產(chǎn)生這樣的轉(zhuǎn)存原理如下:
這個(gè)當(dāng)權(quán)限不夠時(shí),保證兼容性的做法。
比如往program files 或某些系統(tǒng)目錄要寫入東西,會(huì)保存配置文件,權(quán)限不夠,就會(huì)被重定向到這里。
比如往program files安裝軟件,一般安裝程序會(huì)觸發(fā)UAC提升權(quán)限,當(dāng)然不會(huì)有問(wèn)題。
但每次運(yùn)行programfiles中安裝的程序都觸發(fā)UAC時(shí)不現(xiàn)實(shí)的,太煩人了,大多數(shù)程序運(yùn)行時(shí)并不會(huì)觸發(fā)UAC,處于受限模式,但往往很多軟件運(yùn)行后又會(huì)往自己目錄下保存寫配置,臨時(shí)文件之類的,肯定沒權(quán)限寫入program files,所以為了運(yùn)行不出錯(cuò)就被重定向了,騙過(guò)軟件認(rèn)為自己成功寫入了,不至于出錯(cuò)。
你可以發(fā)現(xiàn),這里保存的文件大多數(shù)是程序運(yùn)行過(guò)后的一些配置或臨時(shí)文件之類的。
而本來(lái)的目錄下可能無(wú)法找到這些文件,但會(huì)出現(xiàn)一個(gè)兼容性文件夾,點(diǎn)了就可以跳到VirtualStore中的對(duì)應(yīng)目錄,一般開UAC的才會(huì)遇到這個(gè),剛裝好就關(guān)閉UAC就不會(huì)出現(xiàn)了。
這屬于98開始,2000雖然有完善的權(quán)限級(jí)別,可惜習(xí)慣了人人管理員,等于擺設(shè)。
UAC逼開發(fā)者規(guī)范下,避免往系統(tǒng)目錄寫東西,配置最好放用戶自己的appdata目錄,盡量避免普通應(yīng)用程序以管理員身份運(yùn)行,除非程序的安裝和修改一些系統(tǒng)配置才需要授權(quán),這樣才能根本上解決很多安全問(wèn)題,否者人人管理員間諜流氓簡(jiǎn)直就是暢通無(wú)阻啊,隨時(shí)可以對(duì)系統(tǒng)為所欲為,防不勝防。
不過(guò)為了兼容以前無(wú)數(shù)不規(guī)范的軟件,才搞出個(gè)這么個(gè)東西。
現(xiàn)在遇到的問(wèn)題是,我寫了個(gè)OCX控件,來(lái)對(duì)本地ini配置文件進(jìn)行修改,通過(guò)IE調(diào)用次OCX控件,發(fā)現(xiàn)修改時(shí)會(huì)改到C:/Users/***XX/AppData/Local/VirtualStore/ProgramFiles/MyApp/***.ini,而讀取時(shí)會(huì)到C:/ProgramFiles/MyApp/***.ini里去讀,導(dǎo)致讀取不一致,只能通過(guò)右鍵以管理員身份打開IE,后調(diào)用OCX控件,則只會(huì)在C:/ProgramFiles/MyApp/***.ini里讀取,這樣不會(huì)發(fā)生錯(cuò)誤,目前在尋找解決的辦法。
找了幾天,后來(lái)把IE工具里Internet選項(xiàng),安全標(biāo)簽里的啟用保護(hù)模式不勾選,則OCX控件沒有問(wèn)題了,可以自動(dòng)跳轉(zhuǎn)到virtualstore讀取INI配置文件,可以通過(guò)控件在系統(tǒng)目錄下新建文件夾等,而當(dāng)啟動(dòng)保護(hù)模式時(shí),這些都無(wú)法做到,會(huì)出錯(cuò)。
附上IE保護(hù)模式的說(shuō)明如下“
談到Windows Vista的IE 7安全特性,必須首推其保護(hù)模式功能。這個(gè)Feature的來(lái)頭可不小,據(jù)說(shuō)是蓋茨親自點(diǎn)將,可見其重要性。
IE保護(hù)模式實(shí)際上依賴于Windows Vista三大安全特性:UAC(用戶帳戶保護(hù))、MIC(強(qiáng)制完整性檢測(cè))和UIPI(用戶界面特權(quán)隔離),這也是為什么獨(dú)立版本的IE 7無(wú)福享受的原因。
通俗的來(lái)說(shuō),保護(hù)模式可以讓IE運(yùn)行在最低的特權(quán)級(jí)別下,比其他任何進(jìn)程都低。運(yùn)行在保護(hù)模式下的IE進(jìn)程、IE進(jìn)程里的插件、還有網(wǎng)頁(yè)里的代碼,根本沒有權(quán)限干壞事。IE進(jìn)程“不得入內(nèi)”的地方包括:用戶配置文件夾、HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER等,難怪惡意代碼會(huì)感到處處掣肘!
聯(lián)系客服