我有一位客戶使用主機入侵防護,並已設置每個用戶的臨時文件夾不允許執行(C:\ users \\ AppData \ Local \ Temp)。 NSIS將所有插件dll和它自己的dll提取到%TEMP%下面的文件夾中。問題是什麼都不允許從temp執行,所以整個安裝失敗。我需要知道的是如何告訴NSIS使用不同的文件夾。我唯一能找到的工作就是將註冊表項HCU \ Environment下的TEMP和TMP值從「%USERPROFILE%\ AppData \ Local \ Temp」編輯爲C:\ NSISTEMP之類的東西。但是,即使這個工作改變了註冊表,然後把它放回也不是一個真正的選擇。我也不能只重定向InitPluginDir,因爲它隻影響插件,而不是NSIS提取的其餘部分(圖標xml文件等)。任何想法?s
0
A
回答
0
在運行安裝程序之前,您可以在終端/控制檯窗口中設置%TMP%
,不需要編輯註冊表。
在NSIS V3 +,你可以使用UnsafeStrCpy:
Function .onInit
UnsafeStrCpy $Temp "c:\foo\bar"
CreateDirectory "$Temp"
FunctionEnd
真正的問題是安全「解決方案」,從%TEMP%,爲什麼會阻止執行,但不能從其他目錄真正提供壞人之後的任何保護找出這個限制嗎?
0
如果安裝程序使用特殊的_?= $ InstDir參數啓動,則不會將其複製到%Temp%。
嘗試此操作(在文檔中查找更多信息)也許它比重寫$ Temp文件夾等更安全。
相關問題
- 1. NSIS覆蓋快捷方式
- 2. 緩存是否被覆蓋?
- 3. RefineryCMS - show.html.erb不能被覆蓋
- 4. 緩存值被覆蓋?
- 5. 值被覆蓋,不添加
- 6. 覆蓋/覆蓋功能內的功能
- 7. 以前的值被覆蓋的列表
- 8. pList文件中的舊值被覆蓋
- 9. 我的數組值如何被覆蓋
- 10. OpenCL - 被覆蓋的數組值
- 11. 檢查字段是否被覆蓋
- 12. jar.libs.dir是否被正確覆蓋?
- 13. 可以覆蓋是否被棄用?
- 14. Drupal主題功能沒有被覆蓋
- 15. JavaScript設計模式,功能被覆蓋
- 16. 爲什麼jspService()不能被覆蓋?
- 17. STATIC_URL被覆蓋1.8
- 18. ZoneAwarePromise已被覆蓋
- 19. 變量被覆蓋
- 20. 陣列被覆蓋
- 21. Ajax Url被覆蓋
- 22. 按鈕,被覆蓋
- 23. Opengl VAO被覆蓋
- 24. 圖像被覆蓋
- 25. Flask-OIDC redirect_uri值被覆蓋在某處?
- 26. qfixj是否覆蓋標籤的值43
- 27. 被覆蓋的C++向量
- 28. 被覆蓋的C#圖形
- 29. MSBuild的覆蓋性能值與進口
- 30. Azure的功能覆蓋環境值
爲什麼InitPluginDir不能工作?如果問題是「什麼都不允許從temp執行」,那麼您仍然可以將資產複製到臨時目錄,因爲它們不需要執行,更正嗎? – AaronLS 2015-04-01 16:41:20