我有一個更新我們的產品的Windows服務。它將產品文件複製到臨時目錄(通常爲「C:\ Windows \ Temp」),修補二進制文件,然後使用MoveFileEx在重新引導時將文件複製回安裝目錄,通常爲「C:\ Program Files \ Product 」。安裝目錄中的文件從父文件夾繼承其安全屬性。複製,修補和重新啓動後,安裝目錄中的文件缺少一些ACL。特別是這些文件不再具有Users組的ACL,因此用戶在重新引導後不能再運行該程序。文件安全屬性越來越搞亂文件副本
任何人都可以解釋這是怎麼回事嗎?看起來,從安裝目錄複製到臨時目錄,這些文件繼承了臨時目錄的ACL。但是,在MoveFileEx/Reboot上,這些文件只會繼承安裝目錄和臨時目錄共有的ACL。
我認爲這可能會引發這個問題。雖然有一個更正,但使用ususal特權運行的服務的%TEMP%目錄是C:\ Windows \ Temp,而不是特定用戶的臨時目錄。 – Charles 2008-10-15 13:35:21