我有一位客户使用主机入侵防护,并已设置每个用户的临时文件夹不允许执行(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