问题标签 [process-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.
c# - 以编程方式提升进程特权?
我正在尝试使用 InstallUtil.exe 安装服务,但通过Process.Start
. 这是代码:
wherem_strInstallUtil
是“InstallUtil.exe”的完全限定路径和 exe,并且strExePath
是我的服务的完全限定路径/名称。
从提升的命令提示符运行命令行语法有效;从我的应用程序运行(使用上面的代码)没有。我假设我正在处理一些进程提升问题,那么我将如何在提升状态下运行我的进程?我需要看看ShellExecute
这个吗?
这一切都在 Windows Vista 上。我在提升到管理员权限的 VS2008 调试器中运行该进程。
我也试过设置startInfo.Verb = "runas";
,但似乎没有解决问题。
c++ - 将应用设置为需要海拔高度?
我正在为我们的一些产品开发新安装程序的引导应用程序。到目前为止,我一直依赖于我在某处读到的两件事:
- 默认情况下,名称包含“setup”或“install”的应用程序将运行提升。
- 运行提升的应用程序将以提升模式启动其他应用程序。
最近的测试发现这些陈述中的一个或两个都是错误的,因为我正在启动的应用程序之一是需要提升的第三方安装程序,并且由于提升要求而失败。
如何将我的应用程序设置为需要提升?我知道这与清单文件有关。当我在 Visual Studio 2008 中工作并生成清单文件时,我想知道在项目属性中输入什么以及在哪里需要提升。
delphi - 新编译的应用程序需要 UAC/海拔?
我有一个系统,我使用 UAC 将其设置为普通系统,并在我的 delphi 环境中编译名为 ka.exe 的项目,并为它创建一个 installshield 项目。
设置,一切正常!但是每当我启动我的程序时,它都需要提升,我不知道为什么。
为了确保 installshield 没有在我身上玩心理游戏,我编译了一个新的 .exe,然后手动将其复制到我的联网计算机上。
图标看起来一样,上面也有这个 UAC 盾牌。
我的项目内部有一些功能可能正在与网络共享名称通信,并与 SQL 数据库通信......
那么为什么我的应用程序需要提升才能运行?
windows-server-2008 - 使用 Process.Start 和 UAC 在 .NET 中进行模拟
我正在尝试使用 Process.Start (System.Diagnostics) 方法的模拟选项从另一个需要提升的 .NET 程序运行程序。模拟用户是本地管理员。O/S是2008,UAC是开启的。每当调用进程启动时,我都会收到 Win32 权限错误:
“请求的操作需要提升”
c++ - 如何在 C++ 中设置进程优先级
我正在开发一个对数据进行排序的程序,我需要将进程设置为优先级 31,我认为这是 Windows 中最高的进程优先级。我做了一些研究,但不知道如何在 C++ 中做到这一点。
c# - 运行需要管理员权限的进程循环
我有一个执行循环的应用程序,它以编程方式一个接一个地启动一些进程。我的应用程序本身在标准用户下运行,但我只需要以管理员身份运行这些进程,以便我可以安装它们。
为了实现这一点,我使用了这个线程的第四个响应
我的两个问题是:
上述响应中指向的代码是应该确保进程自动以管理员身份运行,还是向用户显示一个对话框,让他选择是否以管理员身份运行?我对这段代码应该做什么感到困惑。
此外,如果应该给用户一个对话框 - 如何对应用程序进行编码,以便在我的循环中记住第一个用户选项,以便下一个以动词“runas”开始的进程?所以基本上将其他进程的用户选项(以管理员身份运行或不以管理员身份运行)存储在某处。
先感谢您
c# - 海拔需求不适用于winforms应用程序中的方法
我有一个 winforms 应用程序,可以循环安装其他应用程序。这适用于 Windows 7 中的管理员帐户,但我在标准帐户中遇到严重问题 - 该应用程序需要提升才能写入“Program Files(x86)”文件夹。
因此,我尝试使用以下代码在 winforms c# 应用程序中请求提升特定方法(运行安装程序的方法):
收到错误后,从网上得知,在调用带有上述属性的方法之前,需要这样写:
我这样做了,该方法仍然抛出以下错误:
请求主体权限失败。
逐步调试通过 SetPrincipalPolicy 行,但是,当它到达具有 Demand 属性的方法时,它只是抛出相同的错误,就好像 SetPrincipalPolicy 从未存在过一样。
我在正确设置 Demand 属性时做错了吗?
先感谢您。
稍后编辑:这里要求的是在静默安装应用程序时应该触发提升请求的代码(但不起作用):
我需要的是,如果应用程序是在 Windows 标准用户下运行的,那么该过程会弹出一个对话框,询问管理员的用户名和密码。只有上面以编程方式启动的进程应该以管理员身份运行,主应用程序本身可以保持为标准用户。
winapi - Windows 2008:当 __COMPAT_LAYER=ElevateCreateProcess 时应用程序崩溃
有一个应用程序可以在Windows 2008下正常启动,我们称之为App1。
当同一个应用程序由另一个应用程序(启动器)启动时,App1 在 secur32.dll 中崩溃。研究表明,这两种情况的环境不同。
当应用程序崩溃时,它的环境有一个额外的变量__COMPAT_LAYER=ElevateCreateProcess。
在全局系统级别设置 __COMPAT_LAYER=asInvoker 并不能解决问题。将 App1 和 Launcher 添加到 HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 的注册表也不能解决它。
两个程序在其清单中都有以下权限:requestExecutionLevel level="asInvoker" uiAccess="false"
UAC 已关闭。Windows 更新是最新的。唯一有帮助的解决方案是在两者之间注入另一个程序,以清除 __COMPAT_LAYER 或将其设置为 asInvoker。
什么可能是 ElevateCreateProcess 的原因以及如何避免它?谢谢你。
c# - 提升进程时,如何获取非提升会话的 Windows 身份验证 ID
我需要获取 GetTokenInformation 返回的 AuthenticationID 和 TokenStatistics 类,用于登录到工作站的用户,无论我是否被提升。
让我给你一些更多的信息。假设我这样做:
这将允许我毫无问题地从 TokenInformation 结构中获取 AuthenticationID。假设生成的 authenticationID 是“00000000-00001234”
现在,如果我右键单击 Visual Studio 并单击“以管理员身份运行”,再次启动我的代码,结果将是其他内容,例如“00000000-00001289”。但我需要“00000000-00001234”
无论当前进程是否提升,如何获得“00000000-00001234”?
我想这只是找到合适的 Token 给 GetTokenInformation 的问题,但我在这里绕着圈子跑......
注意:我的代码基于如何在 C# 中获取登录 SID以实现 GetTokenInformation,然后对其进行调整以获取 TokenStatistics。
batch-file - 从提升的脚本以受限用户身份启动进程
我有一个运行一些 bat 文件的提升控制台。让这个控制台在提升模式下运行是强制性的,因为它能够执行一些任务,比如管理网络共享等,而无需请求权限。但有时脚本还必须启动一些不希望运行提升的应用程序。所以我们希望我们的高架球棒在非高架模式下开始应用。在 Windows 上有没有内置的方法可以做到这一点?进程是使用 DOS 命令 START 启动的。
顺便说一句,该机器是Windows 7 Ultimate Edition x64。
我知道这个问题已经在许多问题中以编程方式进行了讨论(这收集了许多问题),但我们的要求是在 cmd 上运行的 bat 脚本,以及任何可能有助于我们任务的独立可执行文件,如 nircmd、7z 等。
澄清:我们已经有一个计划任务启动控制台提升,提升控制台不是这个答案的问题。