【发布时间】:2008-11-05 15:57:05
【问题描述】:
更新:由于开发机器已移至 Vista,我现在以标准用户身份自动测试。随着 XP 的淘汰,这个问题不再那么重要了。
自 Windows 2000 徽标要求以来,Microsoft 一直要求应用程序以标准用户身份运行。像其他人一样,我总是以管理用户身份运行我的桌面。和每个开发人员一样:我以管理用户身份登录、开发、运行和测试。
现在,随着最终支持标准用户的新推动,我一直在通过以普通用户身份运行它们来测试我的应用程序 - 通过 RunAs 或使用 [SaferCreateLevel][1]/[SaferComputeTokenFromLevel][2] 让我的应用程序以正常权限重新启动自身如果它检测到它正在以管理员身份运行。我很快就看到我的一些应用程序在 Windows XP 下作为标准用户失败了(由于我自己的愚蠢)。我还看到了相同的应用程序在 Vista 下是如何正常工作的(感谢它为我修复错误的大量垫片)。
旁白:具有讽刺意味的是,与 XP 相比,应用程序更有可能在 Vista 上作为标准用户运行。
问题是您是否测试您的应用程序的标准用户兼容性?您是否在 XP 上作为标准用户进行开发?您是否忽略标准用户访问并希望获得最好的结果?
作为奖励,我尝试让我的应用作为受限用户(而不是普通用户)重新启动。它甚至没有出现 - Windows 说它无法初始化。所以我有一个未来的研究领域:让应用程序甚至支持有限的用户。
我特别提到了 XP 而不是 Vista 上的标准用户,以强制执行 Vista 在兼容性方面与 XP 没有什么不同的事实。任何说他们的应用在 Vista 上失败的人都必须意识到它在 XP 上也失败了。
【问题讨论】:
-
我是一名开发人员,而不是“像其他人一样”,除非我需要管理员权限(通常是为了安装某些东西,但很少),否则我不会以管理员权限运行。
-
“和其他人一样,我总是以管理员用户的身份运行我的桌面。”这正是这种假设,当你最不期待的时候它会失败。