我们编写了一个在 XP 中运行良好的应用程序,但在向 Vista 和 Windows 7 迁移时遇到了严重的问题,这可能是由于写入用户数据的位置。
用例是这样的:个人用户需要登录机器并使用它来获取数据。主管用户需要能够超越个别用户的视线,并验证他们是否正确地执行了他们的工作。这些主管还需要检查系统日志以确保系统正常运行。
我们在 XP 中完成这些任务的方法是直接写入 C:\ 驱动器上的文件夹。也许这是不好的做法,也许不是,但基本上系统的所有用户都需要能够以共享数据的形式访问这些数据。在该程序的某些安装中,IT 环境根本不安全,计算机只有一个用户,然后每个人分别登录到我们的程序。在该程序的其他安装中,IT人员是胜任的,并且对于不同的用户有不同的登录,但是每个用户仍然可以访问C:并且每个用户仍然可以根据需要检查其他用户。
在 Vista/Windows 7 中,这一切都发生了变化。如果 IT 人员将所有内容锁定为单个用户,这些用户仍然需要共享这些公共数据,并且不允许将特定于应用程序的配置参数和用户列表写入应用程序的目录。如果系统位于具有域的位置,则用户没有本地管理员权限,甚至安装也可能出现问题。
解决方案是让安装程序创建一个每个用户都可以写入的目录,然后将所有用户特定的数据放在该目录中吗?如果是这样,是否可以让安装程序以这种方式运行(即使必须授予管理员权限)?或者有没有办法让 Vista/7 以更自由的 XP 方式运行?