首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Windows权限授予未提升的用户?

如何将Windows权限授予未提升的用户?
EN

Stack Overflow用户
提问于 2016-05-16 17:14:16
回答 1查看 272关注 0票数 1

我需要下载大型文件。为了加快传输速度,我在每个文件中使用多个连接。为了减少磁盘碎片,我将在创建文件后告诉windows文件的最终大小。为了避免在编写最后一个连接的第一个字节时初始化为零,我使用SetFileValidData将文件初始化为垃圾。问题是,SetFileValidData需要通常只有管理员才具有的SE_MANAGE_VOLUME_NAME特权。如何为未提升的用户(启用UAC的管理员用户)启用SE_MANAGE_VOLUME_NAME?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 00:13:37

您不能这样做;没有办法让运行的进程具有受限的令牌提升的权限。

考虑使用系统服务来执行提升的任务。至少有三种可能的办法:

  • 做所有的工作,包括从服务下载。
  • 从应用程序下载并使用共享内存将数据提供给要写入文件的服务。
  • 让服务创建和扩展文件,然后为应用程序提供一个只写的句柄。(它必须是只写的,以确保应用程序不会被骗去读取当您绕过零初始化时遗留在文件中的潜在敏感数据。)

请注意,在所有这些情况下,您还需要注意在文件上设置了哪些权限。

或者,根据协议的不同,您可以以不同的方式组织下载流。不要让每个流获取一个大的连续数据块,以便最后一个流写入文件的末尾,而是让每个流获取一系列较小的、分散的块,您可以顺序地将这些块写入文件。

(如果协议只允许每个连接获取一个连续的数据块,这可能是不可行的,因为为每个块建立一个新连接需要额外的开销。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37259522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档