我应该在哪里使用UAC在LocalSystem和普通用户之间存储共享资源?

时间:2010-04-01 03:26:04

标签: windows resources uac

我的应用程序由两部分组成:在LocalSystem帐户下运行的Windows服务和在当前登录的普通用户下运行的客户端进程。

我需要跨Windows版本从Win7到Win7部署应用程序。

客户端将从Web检索文件并从用户收集用户数据。

该服务将构建客户需要阅读的文件和数据。

我正在试图找出存储所有这些的最佳位置(注册表或文件系统,或混合)。客户端或服务需要能够从网络中检索的一个文件是update_patch可执行文件,只要有可用的升级就需要运行该文件。

我需要确定初始安装程序SETUP.EXE,以及update_patch可以找出这个理想的位置,并设置一个RegKey稍后由客户端和服务器读取,告诉他们神奇的位置(SETUP.EXE将运行提升权限,因为它需要安装服务)

在我的Win7测试系统上,服务%APPDATA%指向:

C:\Windows\system32\config\systemprofile\AppData\Roaming

并且客户端的%APPDATA%指向:

C:\Users\(username)\AppData\Roaming

有趣的是,Google Chrome会将所有内容(应用和数据)存储在

C:\Users\(username)\AppData\Local\Google\Chrome

Chrome完全按照我希望套件运行的方式运行(能够在后台静默更新)

我想要避免的是令人讨厌的弹出窗口警告用户该应用程序想要修改系统,并且我想避免因VirtualStore不存在而导致的问题,因为用户正在运行XP / 2000/2003或具有UAC关掉了。

我的目标受众是非技术娴熟的一般Windows用户。

1 个答案:

答案 0 :(得分:0)

但是,Chrome在LocalSystem帐户下没有运行任何服务。

如果您想拥有可在同一系统上的帐户之间共享的文件,请将它们存储在%ALLUSERSPROFILE%文件夹下。

如果您只是希望能够自动更新程序,那么执行Chrome的操作就可以了:只需确保在启用UAC时启动更新的提升程序。