我有一位客戶使用主機入侵防護,並已設置每個用戶的臨時文件夾不允許執行(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. R.id.值被覆蓋
- 2. NSIS覆蓋快捷方式
- 3. 緩存是否被覆蓋?
- 4. 矢量不能被覆蓋
- 5. RefineryCMS - show.html.erb不能被覆蓋
- 6. onResumeFragments不能被覆蓋?
- 7. 矩陣值被覆蓋 - Python
- 8. 緩存值被覆蓋?
- 9. 值被覆蓋,不添加
- 10. 所有值都被覆蓋
- 11. 是否有可能檢測父方法是否被覆蓋?
- 12. 覆蓋/覆蓋功能內的功能
- 13. interceptUrlMap被覆蓋?
- 14. JSONArray被覆蓋
- 15. 以前的值被覆蓋的列表
- 16. 的Youtube iframe中不能被覆蓋
- 17. 功能沒有被覆蓋的子類
- 18. pList文件中的舊值被覆蓋
- 19. 我的數組值如何被覆蓋
- 20. C# - for循環中的值被覆蓋?
- 21. OpenCL - 被覆蓋的數組值
- 22. Java變量被覆蓋的方法被覆蓋的概念
- 23. 檢查字段是否被覆蓋
- 24. 可以覆蓋是否被棄用?
- 25. jar.libs.dir是否被正確覆蓋?
- 26. 如何測試window.print()是否被覆蓋?
- 27. 保護功能不被覆蓋在ZSH
- 28. Drupal主題功能沒有被覆蓋
- 29. browser.download.manager.showWhenStarting可能不會被覆蓋
- 30. 井字遊戲:Sqaure不能被覆蓋
爲什麼InitPluginDir不能工作?如果問題是「什麼都不允許從temp執行」,那麼您仍然可以將資產複製到臨時目錄,因爲它們不需要執行,更正嗎? – AaronLS 2015-04-01 16:41:20