问题标签 [elevated-privileges]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
14827 浏览

c# - 如果路径受到保护,请求 Windows Vista UAC 提升?

对于我的 C# 应用程序,我不想总是在应用程序启动时提示提升,但如果他们选择受 UAC 保护的输出路径,那么我需要请求提升。

那么,如何检查路径是否受 UAC 保护,然后如何在执行过程中请求提升?

0 投票
3 回答
1710 浏览

vb6 - VB6 的高级证书

我需要在 VB6 应用程序中获取提升的凭据(启动服务),但前提是用户需要重新启动服务(即我不想在应用程序启动时获取提升的凭据,只有当用户选择重新启动时)。我怎样才能在 VB6 中做到这一点?

0 投票
5 回答
3226 浏览

svn - 使用提升的凭据安装 Tortoise SVN

我正在尝试在用户不是管理员的 Windows PC 上安装 TortoiseSVN(版本:1.6.1.16129)。

安装程序是一个 msi 文件,默认情况下没有“运行方式”选项。

我都试过了:

运行上述任一结果都会导致安装程序启动,然后第一个对话框会显示神秘消息:“请为 Tortoise SVN 1.6 的服务器映像指定网络位置......”

当管理员用户运行相同的 msi 文件时,安装程​​序将按预期进行。

有没有其他人有这个问题?你找到解决办法了吗?

0 投票
3 回答
2625 浏览

c# - 跨应用程序池的 SharePoint 列表访问

我有一个要求,我需要能够从位于我的 Web 前端 (WFE) 上的应用程序页面访问位于管理中心的列表。我遇到的问题是我的 WFE 的应用程序池用户无权访问 SharePoint_AdminContent 数据库,因此我被拒绝访问,他们都有自己的应用程序池

在日志中,它显示以下内容:

  • 恢复为进程标识
  • SqlConnection.Open 之前的当前用户:名称:SharePointDemo\SPContentPool SID:S-1-5-20 ImpersonationLevel:无
  • SqlConnection.Open 之后的当前用户:名称:SharePointDemo\SPContentPool:S-1-5-20 ImpersonationLevel:无
  • SQL Server 实例“SPNSQL”上的数据库“SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275”中的用户“SPContentPool”的 SQL 数据库权限不足。下面包括来自 SQL Server 的其他错误信息。对象“proc_EnumLists”、数据库“SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275”、架构“dbo”的执行权限被拒绝。

我曾尝试使用 SharePoint\System 用户令牌运行 Daniel Larsons 方法(http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!1919.entry),但它似乎只提升为与应用程序池一样高。

我希望有一种简单的方法来模拟 Admin Web 应用程序的应用程序池,但一直无法找到这样做的方法......或者将进程身份更改为具有访问权限的身份

感谢您收到任何想法、想法或解决方案!

菲尔

0 投票
2 回答
1214 浏览

c# - 如何通过提示用户输入管理员凭据在 Vista 中将文件复制为“标准用户”(即“管理选择应用程序”)?

我有 UAC 开发指南所说的“管理选择应用程序”。如果您熟悉这是什么,请跳到下一节。

背景:

我想让“标准”用户能够在我的应用程序的首选项中选择/取消选择“启动时运行”选项。

由于我的应用程序是每台机器(不是每个用户),需要发生的是它需要删除或复制快捷方式文件到开始菜单/程序/启动文件夹中,这将需要管理访问权限才能执行此操作。

所以,我想要的是出现“用户帐户控制凭据提示”,这样如果用户有管理员帐户,他们也可以输入凭据。这显然是应用程序的设计方式,以防止用户在每次需要执行管理操作时都必须切换到另一个帐户。

摘自 MSDN 文档:

行政选择申请

提升的进程或 COM 对象

初始应用程序无需提升即可启动。用户界面中需要管理访问令牌的那些项目都装饰有盾牌图标作为标识。此装饰向用户表明使用该功能需要管理员批准。当应用程序检测到这些按钮之一已被选中时,它有以下两种选择。

  • 应用程序使用 ShellExecute() 启动第二个程序来执行管理任务。第二个程序将被标记为requireAdministrator 的requestedExecutionLevel,从而导致用户被提示批准。第二个程序将使用完整的管理访问令牌运行,并且能够执行所需的任务。-或者-
  • 应用程序使用 CreateElevatedComObject() 启动 COM 对象。此 API 将在获得批准后使用完整的管理访问令牌启动 COM 对象,并且此 COM 对象将能够执行所需的任务。

我只需要复制一个文件......使用 ShellExecute() 分叉一个新进程似乎太过分了,而且我对 COM 的了解还不够,不知道是否可以使用它来复制文件。我希望有人可以发布一些代码,这些代码提供了一种复制文件的方法,并且理想情况下还可以解释如何使用“sheild decorator”来装饰 MenuItem。

笔记:

我查看了microsoft 提供的 UAC Demo,它在多个 StackOverflow 帖子中被引用,例如(Request Windows Vista UAC elevation if path is protected?)关于权限相关的主题。该代码只有一个调用单独进程的示例。

0 投票
1 回答
720 浏览

uac - 当您不知道运行时应用程序名称时的 UAC 应用程序清单

如果 UAC 关闭,我有一个程序可以正常工作。我希望能够使用清单让它在启动时简单地请求提升权限。

MS的说明说“应用程序清单文件应该与目标可执行文件具有相同的名称,扩展名为.manifest”,这可能就是我没有成功的原因。

http://msdn.microsoft.com/en-us/library/bb756929.aspx

我的程序构建为“one.exe”,然后 {SmartAssembly} 将其重命名为“two.exe”,然后鼓励用户再次重命名它。我不知道这是否重要或使用哪个可执行文件名。

有谁知道我想要的是否可能?如果没有,有没有办法让应用程序告诉用户与 UAC 相关的问题?

提前致谢。

0 投票
1 回答
306 浏览

installation - 以不同的凭据或 HKCU 和安装程序启动程序

我有一个安装程序,需要一个人成为管理员(至少在 c:\program files\app 目录中放置东西)我还需要在 HKCU 中创建一堆条目,如果安装程序正在运行作为管理员,HKCU 会去哪里,大概是管理员。
但我想要登录用户的 HKCU,所以我想启动一个应用程序,它会做很多事情,包括注册表项。
如果我从安装程序启动此应用程序,那么它将以管理员身份运行或登录用户。如何从以管理员身份运行的进程以登录用户身份启动应用程序

我看这一切都错了吗。我真正的要求是
我想部署一个应用程序来进入 HKCU
我的安装程序通常需要管理员凭据(包括 vista UAC 场景)
,一旦提升了哪个 HKCU 的目标?
管理员或提升权限的用户
我如何确保条目最终进入的是用户的 HKCU 配置单元,而不是管理员。
谢谢

0 投票
4 回答
3686 浏览

asp.net - SharePoint 2007 - RunWithElevatedPrivileges - 使用它的陷阱

我有一种强烈的直觉,RunWithElevatedPrivileges应该像瘟疫一样避免使用 SharePoint,但需要说服其他人确切原因。这就是我所拥有的。

  • 产生一个具有提升权限的新线程
  • 阻塞其他操作,直到传递的委托返回
  • 安全问题(可能由最终用户以高级别的权限运行)
  • 其他的?
0 投票
5 回答
20581 浏览

vbscript - 检查脚本是否具有提升的权限

我想检查我的 VBscript 运行的上下文是否允许我执行管理任务。

要求:

  • 该解决方案应该适用于从 Server 2003 开始​​的所有 Windows 操作系统。(这排除了仅检查管理员组成员身份的解决方案——记住在 Vista 和 Windows 7 中有 UAC!)
  • 解决方案应该很简单。一个 50 LOC 解决方案,用于检查 Windows 组成员身份(当然,递归,因为用户可能是某个组的成员,而该组的成员是某个组的成员……它是 Administrators 组的成员),然后对 Vista 进行一些额外的检查UAC并不简单
  • 解决方案可能有点脏,所以按照这个解决方案的思路就可以了。
  • 它不应该太脏。在我看来,将文件写入 C:\Windows 或写入注册表项太脏了,因为它会修改系统。(编辑:这可能无论如何都不起作用:例如,在 HTA 中使用 VBScript 时,UAC 重定向会启动。)

相关问题:https ://stackoverflow.com/questions/301860 (我在那里找到的所有答案(a)忽略了 UAC 问题和(b)是错误的,因为它们忽略了用户具有管理权限的可能性,尽管不是直接的管理员组中的成员)

0 投票
16 回答
283026 浏览

batch-file - 如何在批处理文件中请求管理员访问权限

我正在尝试为我的用户编写一个批处理文件,以便使用 UAC 从他们的 Vista 机器上运行。该文件正在重写其主机文件,因此需要以管理员权限运行。我需要能够向他们发送一封电子邮件,其中包含指向 .bat 文件的链接。期望的行为是,当他们右键单击文件并说“打开”时,他们将获得其中一个使屏幕变暗的 UAC 对话框,并迫使他们回答是否要授予应用程序以管理员身份运行的权限。相反,他们只是在命令行窗口中看到“拒绝访问”。

这可以做不同的事情吗?