适合所有用户的 Windows 数据存储

2023-12-23

在 Window 7、8 和 10 上,我希望我的应用程序将数据存储在共享位置,以便在 PC 上运行该应用程序的所有用户都将访问相同的数据。数据是可读/可写的。我应该使用什么位置?


Windows 对于程序共享数据有有趣的规则。

  • 程序文件 ("C:\Program Files" and "C:\Program Files (x86)") 适用于不可变(只读)程序数据和可执行文件 - 因此此处的文件需要管理权限才能编辑。因此,它对于不应受到损害的重要文件(例​​如您的主要可执行文件)非常有用。这就是安装程序的原因以提升的权限运行。有一个缺点是,如果您的程序具有自动更新机制,那么它也需要以提升的权限运行。
  • Program Data (C:\ProgramData on Windows Vista and later, or C:\Documents and Settings\All Users\Application Data) is intended for mutable program data - you don't need administrative permissions to create files in this folder, except that once a file has been created only the user that originally created that file can subsequently edit it (though everyone can read it). This is the special CREATOR OWNER permission.
    • 此处对此进行了描述:在 C:\ProgramData\ 中写入时出现权限/所有者问题 https://stackoverflow.com/questions/22107812/privileges-owner-issue-when-writing-in-c-programdata
  • AppData (C:\Users\(you)\AppData\Local and C:\Users\(you)\AppData\Roaming) 是特定于用户的,用于特定于用户的设置、配置和数据。这Localversion 应用于特定于计算机的设置,如果用户使用漫游配置文件,则不应漫游,例如数据缓存(例如浏览器缓存)。

所以在你的情况下ProgramData看起来很理想,但你需要注意默认值CREATOR OWNER规则 - 但有一个解决方法:程序的安装程序(将以管理员身份运行)能够更改其 ProgramData 子目录的 ACL 权限,以允许其他用户编辑文件。我建议授予Users组权限而不是Everyone以防止未经身份验证的用户可能进行的远程攻击和修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适合所有用户的 Windows 数据存储 的相关文章

  • SQL Server Express(或任何版本)可以在 RPi 上运行吗?

    我注意到完整版的 Windows 10 可以在 RPI 3 上运行 我想知道 SQL Server Express 或任何其他版本 是否可用于 ARM 版本的 Windows 我在任何地方都看不到它 所以我怀疑答案是否定的 但想检查一下我是
  • Windows下Kafka托管在Docker中删除主题时出现异常

    我在 Windows 的 Docker 中托管 Kafka 威斯迈斯特 卡夫卡 https hub docker com r wurstmeister kafka 使用 docker 镜像 Kafka 数据存储在本地 Windows 文件夹
  • 避免 Inno Setup 中的“无法展开 shell 文件夹常量 userdocs”错误

    我将一些示例文档安装到 Windows 上标准 我的文档 文件夹的 PerfectTablePlan 子文件夹中 这对于 99 以上的用户来说效果很好 但是 如果用户没有 我的文档 文件夹 我会收到许多以下形式的丑陋错误消息 内部错误 无法
  • 在新窗口中打开 SAS 程序

    目前 当您在 Windows 中双击 SAS 文件时 它将在您已打开的现有 SAS 会话中打开它 有没有办法让它在窗口中单击时会启动一个新的 SAS 窗口 据我所知 SAS 是一个所谓的 单实例 应用程序 因此它的默认行为是在现有会话中打开
  • 为什么我的文件路径中出现 Unicode 转义的语法错误? [复制]

    这个问题在这里已经有答案了 我想要访问的文件夹名为 python 位于我的桌面上 当我尝试访问它时出现以下错误 gt gt gt os chdir C Users expoperialed Desktop Python SyntaxErro
  • 如何在 PowerShell 中键入 TAB 字符?

    Task 默认情况下 在 Windows 命令提示符中按 TAB 键将输出文件名 而在 PowerShell 中则不会执行任何操作 我希望能够在交互模式下键入 TAB 字符 而不是通过脚本 Research 我在这个网站上和通过谷歌搜索发现
  • 在 Windows 2008 上将 myprogram.exe 作为服务运行时出现问题

    MyProgram exe 是用来侦听来自管道的请求并使用命令提示符使其工作完美 但我尝试使用 Windows 服务来工作但没有成功我在 Windows Server 2008 Enterprise 上尝试了以下步骤 gt sc creat
  • 为什么 cygwin 无法读取我的主目录中的 .ssh/config 文件?

    我正在使用 cygwin 并且正在尝试设置 ssh config 文件 Cygwin 的文件夹位于我的 C 驱动器中 我的主目录是 C Users USER 我注意到 当我编辑 C Users USER ssh config 时 cygwi
  • 如何让脚本执行结束后自动删除?

    是否可以制作一个Python脚本 在Windows中执行结束时删除 py文件 自删除 这种方式使您的程序不依赖于操作系统 from os import remove from sys import argv remove argv 0 奖励
  • Windows Workflow Foundation 4 (WF4) 延迟

    我正在与 Visual Studio 2010 的候选版本一起使用 Wf4 编写一个用于批准资源请求的新工作流程 在我的工作流程中 如果请求未获得批准 我希望请求在几天后过期 我们在 WF 3 5 Visual Studio 2008 中通
  • 如何从任何进程关闭 Windows 上的套接字(ipv4 和 ipv6)连接?

    如何在 Windows 上关闭 tcp v4 和 tcp v6 连接 我不想终止具有开放连接的整个进程 因为这显然会将其他人踢出该进程 我需要从一个单独的进程执行此操作 因此无法访问套接字句柄等 我正在使用 Windows API 来获取
  • python+win32:检测窗口拖动

    有没有办法检测何时使用 python pywin32 在窗口中拖动不属于我的应用程序的窗口 我想对其进行设置 以便当我拖动标题与桌面边缘附近的图案匹配的窗口时 当松开鼠标时它会捕捉到边缘 我可以编写代码 以便在释放鼠标时将所有具有该标题的窗
  • 确定用于映射网络驱动器的域和用户名

    使用带有 SP1 的 Windows 7 Enterprise 但我希望得到适用于 Windows XP 2003 2008 Vista 7 的通用答案 从命令提示符处 我执行net use命令将 Z 驱动器映射到另一台计算机上的共享 但我
  • 移动/调整窗口大小时闪烁

    我开发了一个显示 jpeg 图像的应用程序 它可以显示 4 个图像 屏幕的每个象限各一个 为此 它使用了 4 个窗口 窗口没有边框 框架 也没有标题栏 当加载新图像时 窗口大小会根据新图像进行调整 然后显示该图像 尤其是当窗户做得较大时 经
  • 如何解决内存碎片

    我们偶尔会遇到这样的问题 长时间运行的服务器进程 在 Windows Server 2003 上运行 由于内存分配失败而引发异常 我们怀疑这些分配由于内存碎片而失败 因此 我们一直在寻找一些可能对我们有帮助的替代内存分配机制 我希望有人能告
  • Qt(在 Windows 上)将权限级别设置为“requireAdministrator”

    我正在使用 Qt Creator 并努力制作 exe文件默认以管理员身份运行 在线阅读所有解决方案我试图将这一行放入我的 pro file QMAKE LFLAGS MANIFESTUAC level requireAdministrato
  • Kerberos 双跳

    我们遇到了臭名昭著的 Kerberos 双跳问题 这是一个全新的域 是从以前使用模拟和委派的另一个提供商迁移而来的 我们已将操作系统升级到最新的 SQL 服务器 2017 WPF 应用程序 使用域凭据 gt Web 服务 IIS 10 上的
  • 在 Cygwin 软件包列表中找不到 Openssl

    这里说的是https github com joyent node wiki Building node js on Cygwin Windows https github com joyent node wiki Building nod
  • SetCurrentDirectoryW 中的错误 206

    在我之后之前不清楚的问题 https stackoverflow com questions 44389617 long path name in setcurrentdirectoryw 我以某种方式能够创建一个具有长路径名的目录 但是
  • Windows 目录永远不会包含临时文件的非 ASCII 字符?

    在 Windows 上使用 MinGW 7 3 0 由于 Windows 限制 Hunspell 无法从包含非 ASCII 字符的位置加载字典文件 我已经尝试了所有方法 1 现在我将文件复制到没有 ASCII 字符的路径 然后再将其交给 H

随机推荐

  • Java“原型”模式 - new、clone、class.newInstance

    在我的项目中 有一些 原型 工厂通过克隆最终私有实例来创建实例 这些工厂的作者表示 这种模式比调用 新 运算符提供了更好的性能 使用谷歌来获取一些线索 我没有找到任何相关的东西 这是在a中找到的一小段摘录来自未知项目的 javdoc htt
  • 循环遍历名称并删除那些不匹配指定模式的名称

    我有一个 Excel 工作簿 在其中从其他几个工作簿导入工作表 然后将这些数据合并到 概述 工作表中 我对 vba 相当陌生 所以这项任务花了相当长的时间和大量的研究 然而 我有一个无法解决或找到答案的问题 但我认为如果您知道如何解决 那么
  • C#:使用 foreach 或 for 循环从 ArrayList 中删除项目?

    我对编程和 C 编程都是一个菜鸟 我之前学过一些基本的 Java 我正在尝试使用 C Unity3D 我有一个问题 使用 for 循环而不是 foreach 迭代来删除 ArrayList 中的任何项目是否更好 两者似乎都适合我 Forea
  • 如何在 Jenkins 上设置 LD_LIBRARY_PATH

    我在 Jenkins 运行作业时遇到 java lang UnsatisfiedLinkError 问题
  • 将 $http 响应对象保存为 $scope 变量

    我今天早些时候在 stackoverflow 上问了一个相关问题 但由于代码的复杂性 无法发布它 和我自己的新手 我无法真正从给出的答案中实现解决方案 所以我现在的问题是 对于如下代码 http get ArbitraryInput the
  • switch 语句比较大于或小于数字的值

    我想使用switch我正在编写的一些简单代码中的声明 我试图将括号中的变量与值进行比较 lt 13 or gt 13 这可以使用吗Switch var age prompt Enter you age switch age case lt
  • 如何删除Android内部存储文件?

    我已经使用 Android 内部存储来为我的应用程序保存文件 使用openFileOutput 但我想删除该文件 是否可以以及如何删除 File dir getFilesDir File file new File dir my filen
  • 对于大多数网络主机来说,哪个版本的 PHP 被视为“标准”? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 java.awt.BasicStroke 制作虚线动画

    有没有办法使用 java awt 中的 BasicStroke 生成动画虚线 我的愿望是拥有一条运行的虚线 就像 Photoshop 的矩形选框工具对其线条进行动画处理一样 使用虚线 aThread 或秋千Timer 并将它们与repain
  • SDK中缺少导入类时Android项目如何编译?

    好吧 也许这很简单 但我现在就是想不出来 我已经导入了谷歌示例项目读卡器 https github com googlesamples android CardReader git在Android Studio 1 5 1中 它在compi
  • Errno 13 权限被拒绝。已经在虚拟环境中

    我正在尝试在操作系统更新后安装张量流 我收到 Errno 13 权限被拒绝的消息 我检查过的所有论坛帖子都建议使用虚拟环境解决此问题 问题是我已经在虚拟环境中工作了 这是我使用的命令 user Computer cd tensorflow
  • 尽管 Numpy 推荐 a@b,为什么 a.dot(b) 比 a@b 快

    根据这个答案question https stackoverflow com questions 3890621 how does multiplication differ for numpy matrix vs array classe
  • C-格式化MAC地址

    我目前正在解析一些 MAC 地址 我得到的输出不包含前导零 像这样 char host 0 25 25 0 25 25 我想像这样格式化它 char host 00 25 25 00 25 25 解决这个问题最简单的方法是什么 对于那些想知
  • IB_DESIGNABLE、IBInspectable -- 界面构建器不更新

    我有以下一组代码 自定义视图 h import
  • 如何使 Finder “打开方式”适用于我的应用程序(Xcode、OS X)?

    我创建了一个能够播放音频文件的应用程序 这本身工作得很好 从查找器拖放到我的应用程序也是如此 我还希望人们可以使用 打开方式 菜单从 Finder 中使用我的应用程序 甚至允许他们将我的应用程序设置为特定文件类型的默认应用程序 经过大量搜索
  • Handlebars 特定 - 传递 Handlebars 表达式时转义单引号和双引号

    HTML 和把手 onclick shareItem name gt 当其中包含双引号时 无法成功传递安全转义的名称 onclick shareItem name gt 当其中包含单引号时 无法成功传递安全转义的名称 我需要处理这两种可能性
  • Vary:接受编码是否过度?

    阅读完有关gzip 压缩的工作原理 https developers google com speed articles gzip hl en这让我思考 如果源服务器和代理服务器 CDN 都支持 gzip 则添加Vary Accept En
  • 如何在 C# 中排列或排序桌面图标?

    您知道右键单击桌面时会出现一个 排序依据 选项 允许您按 名称 大小 项目类型 或 修改日期 对图标进行排序吗 好吧 我想找到一种只需按一下按钮即可对桌面图标进行排序的方法 我在 stackoverflow 上看到了类似的问题 但它很旧 而
  • 如何在不使用 Firebase 并使用自己的自定义后端的情况下使用 Flutter 设置推送通知

    我一直在使用 React Native 开发一个应用程序 现在正在考虑使用 Flutter 重建该应用程序 在开始重建之前 我正在研究 Flutter 的功能 看看它是否适合我们的项目 我在推送通知插件方面遇到了一些困难 网上有很多关于使用
  • 适合所有用户的 Windows 数据存储

    在 Window 7 8 和 10 上 我希望我的应用程序将数据存储在共享位置 以便在 PC 上运行该应用程序的所有用户都将访问相同的数据 数据是可读 可写的 我应该使用什么位置 Windows 对于程序共享数据有有趣的规则 程序文件 C