问题标签 [runas]

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 投票
2 回答
4186 浏览

c# - C#:加载漫游配置文件并以用户身份执行程序

在应用程序中,我需要使用其他用户的凭据执行其他程序。目前我使用System.Diagnostics.Process.Start来执行程序:

但是,此功能不会从网络加载漫游配置文件 - 这是必需的。

我可以使用“runas /profile ...”来加载配置文件并执行命令,但这会要求输入密码。一定有更优雅的方式...

但是哪里?

0 投票
4 回答
28976 浏览

vb.net - 在 vb.net 中以不同用户身份运行新进程

我目前正在使用本土方法在 Vista 中以不同用户的身份运行进程,我无法摆脱这种感觉,那就是它是 hack-ish 并且不太理想(除了它会破坏 UAC,让我的带有安全异常的应用程序,并迫使我完全禁用 UAC)。我的流程由两个项目(所以两个 EXE 文件)组成——一个“接口”和一个“启动存根”——这是流程:

  1. 用户有一个启动“Interface.exe notepad.exe”的快捷方式
  2. Interface.exe 有一个表单,询问他们想要使用的凭据
  3. Interace.exe 使用 ProcessStartInfo 作为新用户创建 LaunchStub.exe (LS) 的实例
  4. LS 使用 ProcessStartInfo(ShellExecute 设置为 true)来启动请求的文件,并且由于它已经作为请求的用户运行,因此新进程也是如此。

我有一个两步过程的原因是我希望用户能够右键单击操作系统对(.EXE、.SQL、.MSC 等)具有默认操作的任何文件并启动它,并且仅 ProcessStartInfo支持启用“UseShellExecute”,但该开关阻止我使用新凭据,所以我一次只能做一个。

这会导致一些问题 - 首先,用户必须已经存在于计算机上,这意味着他们之前必须在本地登录。如果该用户没有本地配置文件,则有时会启动所请求的应用程序,但我会收到注册表和配置文件异常,因为该应用程序希望存在尚不存在的事物(例如注册表中的 HKCU 配置单元,而用户不存在)因为他们从未登录过)。

我知道我应该能够将我的应用程序的权限“提升”给他们请求的用户,启动我的新进程,然后撤消提升,但我无法找到一个好的代码示例,并且我不确定它是否允许以完全不同的用户身份运行。这一切有意义吗?我只是不禁觉得有更好的方法来做到这一点。


更新:我刚刚尝试了一些我在网上找到的模拟代码,但无济于事。当与 ProcessStartInfo 结合使用时,它似乎仍然使用我当前的登录名来启动进程,而不是我提供的登录名,即使我已经使用提供的凭据激活了模拟。

0 投票
2 回答
4493 浏览

runas - 得到“不支持 RUNAS 命令”。在 iexplore.exe 上使用 runas 时

当尝试使用 runas 命令在不同用户帐户下在 Windows Server 2008 上运行 IE 时,我收到消息“不支持 RUNAS 命令”。此命令适用于其他应用程序,但不适用于 IE。还有其他人遇到这个并找到解决方法吗?

0 投票
1 回答
517 浏览

c# - 以管理员身份运行的程序重新启动后,SysTray 图标不可见

我有一个最简单的应用程序形式,其中显示了一个 SysTray 图标并在启动项中添加了该应用程序。应用程序是用 C# 开发的。我希望即使在机器重新启动后也能显示托盘图标。目前,我在使用“以管理员身份运行”运行 exe 时遇到了一个奇怪的行为。当我在管理员权限下使用时,机器重启后图标不会出现(尽管 exe 仍在运行)。我在元数据“requestedExecutionLevel level="asInvoker" uiAccess="false"”中使用以下元数据值:

我不得不使用“invoker”(而不是“administrator”),因为没有它就不会将它添加为启动项。如果我使用双击运行 exe(因为现在它在当前用户域而不是管理员下运行),它工作正常,但是这个 exe 将由安装程序启动,因此在系统域中启动。谁能帮我解决这个问题?

要么为我提供解决方案,以便它可以在以管理员身份运行时显示 Systray 图标,或者如果你可以提供任何方式让我可以在当前用户域而不是管理员下启动这个 Exe 更好?

问候 Sumeet Garg

0 投票
6 回答
20303 浏览

.net - 如何将 RUNAS /NETONLY 功能构建到(C#/.NET/WinForms)程序中?

我们的工作站不是我们 SQL Server 所在域的成员。(他们实际上根本不在域上 - 不要问)。

当我们使用 SSMS 或任何东西连接到 SQL Server 时,我们使用 RUNAS /NETONLY 和 DOMAIN\user。然后我们输入密码并启动程序。(RUNAS /NETONLY 不允许您在批处理文件中包含密码)。

所以我有一个需要 SQL 连接的 .NET WinForms 应用程序,用户必须通过运行具有 RUNAS /NETONLY 命令行的批处理文件来启动它,然后它会启动 EXE。

如果用户不小心直接启动了 EXE,它就无法连接到 SQL Server。

右键单击应用程序并使用“运行方式...”选项不起作用(可能是因为工作站并不真正了解域)。

我正在寻找一种方法让应用程序在开始任何重要的事情之前在内部执行 RUNAS /NETONLY 功能。

有关 RUNAS /NETONLY 如何工作的说明,请参阅此链接:http ://www.eggheadcafe.com/conversation.aspx?messageid=32443204&threadid=32442982

我想我将不得不LOGON_NETCREDENTIALS_ONLY使用CreateProcessWithLogonW

0 投票
3 回答
787 浏览

com - 如何以另一个(更多特权)用户身份启动进程外 COM 服务器

我想创建一个作为另一个用户在进程外 COM 服务器中运行的 COM 对象。我怎么做?

我可以控制 COM 服务器源代码,而我的 COM 客户端是唯一将创建这些 COM 对象的客户端。

0 投票
4 回答
9716 浏览

internet-explorer - 使用 Run As 运行多个 IE 8 实例似乎不起作用

过去,如果在辅助帐户上使用 IE 进行测试,我会使用 runas 命令行启动另一个实例,因为我们的内部 Web 应用程序使用 Windows 身份验证来识别用户。如果 IE8 使用新的多进程模型,这似乎不起作用。有没有人看到它的解决方法?

0 投票
2 回答
13027 浏览

runas - Win7 runas 命令:如何捕获正在运行的命令的输出?

我正在尝试(在 Windows 7 下)使用 runas 命令停止然后重新启动服务。(Win7 需要管理员权限才能执行此操作;因此使用 runas。)

停止服务工作正常,但启动它没有。这是我用来停止服务的命令:

这是启动服务的命令:

当我运行上述命令时,会打开另一个命令窗口,但在我看不到任何内容之前它就闪退了;因此我不知道出了什么问题。

所以,我的问题是:当通过 runas 运行时,如何从 net start 命令中捕获标准输出和/或标准错误?我试过只使用重定向,但只得到一个空文件。另一种解决方案是让 runas 打开窗口以使子任务保持打开状态。

提前致谢。

0 投票
1 回答
3008 浏览

c++ - CreateProcessWithLogonW 和 mmc.exe

我写了一个程序,它应该像 RunAs 一样工作。它工作正常,但我有一个问题。如果我想运行例如 compmgmt.msc,那么我应该运行 mmc.exe 和 compmgmt.msc 作为它的参数。计算机管理将打开,但不是在我想运行它的用户下。它将在登录的用户名下运行。有人可以告诉我为什么会这样,我该如何纠正?这是我的代码:

谢谢你的帮助!

坎皮

0 投票
1 回答
1187 浏览

jboss - Jboss5,通过@RunAs 对安全 EJB 的未经身份验证的调用

我正在尝试从未经身份验证的源(连接到队列的消息驱动 Bean)调用安全 EJB 上的方法。MDB 有一个通过 @EJB 注入的 EJB,这很好,但是目标 EJB 有 @SecurityDomain("stuff") 和 @RequireRole("user"),并且在执行时会生成大量堆栈跟踪:

我试图通过使用@SecurityDomain("stuff") @RunAs("sysuser") 注释的临时 EJB 提供角色来解决此问题,这个临时 bean 将原始目标 EJB 注入其中。我的理解是,目标 EJB 将具有从“sysuser”角色下的临时 bean 调用的方法。然而,我仍然得到相同的堆栈跟踪,导致创建的数据库回滚。

在没有这些堆栈跟踪的情况下,路径 MDB -> SecureEJB 是否可能在其他变体中?代理方法是否走上了成功的正确道路,还是我需要添加一些东西?

干杯,安迪