问题标签 [elevation]

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 回答
4623 浏览

.net - Vista UAC、Access Elevation 和 .Net

我试图找出是否有任何方法可以提升应用程序中的特定功能。例如,我有一个应用程序,其系统和用户设置存储在注册表中,我只需要在需要更改系统设置时进行提升。

不幸的是,我遇到的所有信息都在谈论只启动具有提升权限的新进程。

0 投票
4 回答
11257 浏览

windows-7 - 如何检测我的进程是否正在运行 UAC 提升?

我的 Vista 应用程序需要知道用户是“作为管理员”(提升)还是作为标准用户(非提升)启动它。如何在运行时检测到它?

0 投票
3 回答
14195 浏览

c# - 如何 UAC 使用 .NET 提升 COM 组件

我找到了一篇关于如何通过调用 CoCreateInstanceAsAdmin. 但是我无法找到或做的是一种将我的 .NET (c#) 应用程序的组件实现为 COM 对象然后调用该对象以执行需要 UAC 提升的任务的方法。MSDN 将此记录为管理 COM 对象模型

我知道以管理员身份启动应用程序(或另一个应用程序)是可能且非常容易的,以在单独的进程中执行任务(例如参见Daniel Moth 的帖子,但我正在寻找的是一种方法在同一个未提升的 .NET 可执行文件中执行所有操作。这样做当然会在新进程中生成 COM 对象,但由于透明编组,.NET COM 对象的调用者不应该(太很多)意识到这一点。

关于如何通过CoCreateInstanceAsAdminAPI 从 C# 项目中实例化用 C# 编写的 COM 对象的任何想法都会非常有帮助。所以我真的很想学习如何用 C# 编写 COM 对象,然后我可以通过 COM 提升 API 从 C# 调用它。

如果提升的 COM 对象不在同一进程中运行,请不要介意。我只是不想启动整个应用程序。我只想提升将执行代码的 COM 对象。如果我可以写一些类似的东西:

然后让我的主应用程序ElevatedClass通过CoCreateInstanceAsAdmin调用进行实例化。但也许我只是在做梦。

0 投票
4 回答
11282 浏览

.net - 如何在 Vista (.NET) 中运行不提升

我有一个必须以管理员身份运行的应用程序。

该应用程序的一小部分是使用 Process.Start 启动其他应用程序

启动的应用程序也将以管理员身份运行,但我宁愿看到它们以“普通”用户身份运行。

我该如何做到这一点?

/约翰/

0 投票
3 回答
1770 浏览

windows-vista - Editing the Registry with VBScript on Vista

A VBScript cannot edit the registry by default on Vista. How do I get elevation (even if the user has to do something when they run the script) so that the script can edit the registry?

The error is:

0 投票
4 回答
4158 浏览

c# - 读取/写入程序文件时访问被拒绝

我有一个小程序安装在程序文件的自定义文件夹中,但是当我尝试读取或写入操作所需的文件时,程序会引发访问被拒绝异常。当然,在用户许可的情况下,我如何提升程序。

0 投票
4 回答
30746 浏览

delphi - Delphi:在需要时提示 UAC 提升

我们需要在运行时将一些设置更改为 HKEY_LOCAL_MACHINE。

如果在运行时需要,是否可以提示 uac 提升,或者我是否必须启动第二个提升的进程来完成“肮脏的工作”?

0 投票
2 回答
4595 浏览

windows - Windows 7:利用自动提升来提升我自己的流程?

从 2009 年 7 月 Technet 一篇题为Inside Windows 7 User Account Control的文章中,Mark Russinovish描述了以标准用户身份运行的应用程序可以静默提升并获得管理权限:

...在具有标准用户权限的 PA(受保护的管理员)帐户中运行的第三方软件可以利用自动提升来获得管理权限。例如,该软件可以使用 WriteProcessMemory API将代码注入Explorer,并使用 CreateRemoteThread API执行该代码,这种技术称为DLL 注入。由于代码在资源管理器(Windows 可执行文件)中执行,因此它可以利用自动提升的 COM 对象(如复制/移动/重命名/删除/链接对象)来修改系统注册表项或目录并赋予软件管理权限权利。

他继续提到恶意软件永远不会这样做,因为这太难了:

...这些步骤需要刻意的意图,而不是微不足道的...

最后

...恶意软件可以使用相同的技术获得管理权限。

所以我很想看到一个实际的实现。


我原以为PROCESS_VM_WRITE将是不授予标准用户的权利。

注意:我自己永远不会做任何坏事,就像世界上所有其他开发人员一样。

0 投票
5 回答
13589 浏览

c# - 您如何取消提升子进程的权限

我知道如何使用以下方法从进程中启动具有管理员权限的进程:

其中 proc 是 System.Diagnostics.Process。但是如何做相反的事情呢?

如果您所在的进程已经被提升,您如何在没有管理员权限的情况下启动新进程?更准确地说,我们需要以与Windows资源管理器相同的权限级别启动新进程,因此如果禁用UAC,则不会更改,但是如果启用了UAC,但我们的进程正在运行,我们需要执行某个未提升的操作因为我们正在创建一个虚拟驱动器,如果它是使用提升的权限创建的,并且 Windows 资源管理器未提升运行它就不会显示。

随意将标题更改为更好的名称,我无法提出一个好的描述。

0 投票
3 回答
4969 浏览

windows - 如何为 Windows 安装程序创建清单?

我们的应用程序有一个安装程序,必须下载并以管理员权限运行,就像许多其他安装程序一样。但是,安装程序未命名为“setup.exe”,因此 Windows 不会自动将其检测为需要提升才能运行。

坦率地说,更改安装程序名称以使事情正确提升听起来很混乱。这篇文章谈了很多关于 UAC 和提升的内容,它说您可以使用清单来使某些东西需要授权。

所以,我们只想为我们的安装程序创建一个清单。但是,我们如何确保清单存在?如果用户只是下载 our_application_v13.exe,我们如何确保他们也获得清单?AFAIK 在这种情况下,清单必须是一个名为“our_application_v13.exe.manifest”的文件。

由于他们只是从我们的网站下载文件,我们如何确保他们也获得清单?我们能否以某种方式将其构建到可执行文件中,或者以其他方式将可执行文件标记为需要提升?我们使用的是数百年前的安装工具,我们无法更改,因此它没有任何与此相关的功能。

谢谢!