问题标签 [createprocessasuser]
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.
windows - 为什么 CreateProcessAsUser 因“当该文件已存在时无法创建文件”而失败?
我正在尝试使用 CreateProcessAsUser 在服务的用户会话中创建客户端进程。但是当我用 VS 2010 调试它时,CreateProcessAsUser 失败并且错误代码是 0,错误消息是
当该文件已存在时无法创建该文件
如果我分发它并与安装程序一起安装,则 CreateProcessAsUser 似乎偶尔会因此错误而失败。我很好奇它试图写入什么文件。
就我个人而言,我不认为是客户试图写一些东西。由于 CreateProcessAsUser 只是启动进程并对其进行初始化,然后返回。
我确实使用与安装程序不同的方式来安装服务。会是这个原因吗?
这是代码
c# - 以完整的权限和环境启动流程
我有一个在 LocalSystem 以外的用户帐户下运行的 Windows 服务,让我们假设用户mydomain\svcUser。
该服务使用Process.Start(...)生成一个新进程P。进程 P 使用用户mydomain\procUser下定义的默认 Outlook 配置文件。工作正常。
现在,我需要在一个新用户下生成相同的进程P : mydomain\procUser基本上具有与mydomain\svcUser相同的权限。
在使用 LogonUser 获取令牌后,我尝试以多种方式使用 CreateProcessAsUser,但它不起作用。
现在,如果我将我的进程的登录用户更改为mydomain\procUser,那么生成的进程P拥有所有必需的权限和环境内容以正常工作。
对于如何组合要传递给 LogonUser 和 CreateProcessAsUser 的参数,我非常迷茫,这样我就可以让服务在mydomain\svcUser下运行,但生成的进程P在mydomain\procUser下正常工作。
这个链接很有帮助,但它只是一篇很棒的指南文章,成功取决于在调用LogonUser和CreateProcessAsUser时如何使用标志和其他东西。
c++ - CreateProcessAsUser - 创建具有不同父进程的进程?
我在 MSDN 上阅读了有关 UAC 的实施: http ://technet.microsoft.com/en-us/magazine/2007.06.uac.aspx
偶然发现了这条有趣的路线:
尽管 AIS 在技术上是提升进程的父进程,但 AIS 使用 CreateProcessAsUser API 中的新支持,将进程的父进程 ID 设置为最初启动它的进程的 ID(参见图 13)。
这是 CreateProcessAsUser 的 MSDN 页面:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682429(v=vs.85).aspx
应用程序说我们可以通过使用 API 中的选项创建一个进程并设置不同的父进程。我不知道该怎么做?我需要挖掘令牌吗?
redirect - 从 createprocessasuser 将输出重定向到文件
我创建了一个 Windows 服务,它从我提供的地址下载文件,然后使用
createprocessasuser
函数执行,一切正常,直到我尝试将输出重定向到文件
我看到程序的新窗口正在运行,其中没有任何内容,但日志文件中也没有任何内容..
这是我的代码:
当我在没有重定向的情况下运行它时,它工作正常,当我在不同的程序上运行此代码并使用createprocess
它时,它也适用于重定向,但是当我使用createprocessasuser
(因为它从 win 服务运行)时,日志文件中没有任何内容. 有任何想法吗?
windows - CreateProcessWithLogonW 错误 1783:存根收到错误数据
我有这个测试代码:
在我朋友的电脑上,它总是可以正常工作。在我的电脑上它有时可以工作!只有有时,大多数时候它会产生 1783 错误。我试图在我的电脑上删除一些服务,但这没有帮助。我需要该代码可以在许多其他 PC 上运行,因此我需要了解为什么会出现此错误以及如何修复它。
c# - 将 createprocessasuser 的标准输出重定向到管道在读取时挂起
我正在使用 CreateProcessAsUser 从服务运行进程,并将标准输出重定向到命名管道。但是当我尝试从命名管道中读取时,它会挂在读取上并且永远不会返回。我在一个单独的任务中尝试了这个(目前在下面实现)并在主进程中读取它。我还尝试使用 C# AnonymousPipeServerStream 类(请参阅下面注释掉的代码),但有相同的挂起。
有什么我想念的想法吗?谢谢!
c# - 从 C# 中的 CreateProcessAsUser 捕获标准输出
我目前正在使用 pinvoke CreateProcessAsUser api 在 asp.net 网站中启动进程。这可以完美地模拟登录的 AD 用户。
但是不知何故,控制台输出的结果字符串始终为空。我找不到出了什么问题。没有崩溃或任何东西只是没有输出。
c# - 如何使用带有扩展属性的 CreateProcessWithLogonW (STARTUPINFOEX)
我真的希望能够通过共享管道进行文件重定向,并将继承的句柄列表过滤为仅那些 stdout/stderr/stdin 句柄,据我所知,STARTUPINFOEX 和扩展属性是这样做的方法。我还需要能够以其他用户身份启动。
- CreateProcess 在使用 STARTUPINFOEX 时为我工作,并且要么不传递任何属性,要么传递单个属性(要么更改父级,要么过滤继承的句柄)。
- CreateProcessWithLogonW 在使用 STARTUPINFOEX 时有效,但前提是我从创建标志中删除 EXTENDED_STARTUPINFO_PRESENT(基本上将 STARTUPINFOEX 视为 STARTUPINFO,即使 startupinfo.cb 是完整结构)。
- 如果我添加 EXTENDED_STARTUPINFO_PRESENT,我会得到有用的“参数不正确”,即使不使用任何属性(适用于 CreateProcess)
以下内容有效,直到您取消注释 // | NativeMethods.EXTENDED_STARTUPINFO_PRESENT,
Edit.1 在过滤的句柄属性列表中发送,以防合同差异需要扩展属性不是 IntPtr.Zero。还是失败了。同样,在 CreateProcess 中工作,在 CreateProcessWithLogonW 中使用这些新信号失败:
c++ - 来自本地系统管理员的 CreateProcessAsUser 不应用 Windows 样式
我在使用来自本地系统管理员的 Windows API CreateProcessAsUser 的应用程序中遇到问题,以便以其他用户身份运行应用程序。到目前为止一切正常,但 Windows 窗口和框架样式并未以某种方式应用。该窗口总是看起来像带有大框架的 Windows 2000 窗口。我还附上了一些截图
我还编写了一些示例代码,说明我们如何在不处理句柄和其他东西的情况下使用 C++ 实现所有魔法。
只需确保您在本地设置了密码“test”的用户“test”,并尝试以本地系统管理员身份运行发布的源代码。如果您尝试执行代码,其他用户将导致错误代码 1413。
该问题主要出现在 VirtualBox 中的 Windows 7 VM、某些 Windows 7 系统和所有 Windows 8.1 系统上。很奇怪。谁能帮我解决这个问题?谢谢!
c++ - 无法加载包含对 CreateProcessAsUserW 的调用的 dll
我有一个加载 dll 的程序,所有 dll 只有一个简单的 c 函数“运行”。一个 dll 包含对 CreateProcessAsUserW 的调用,当我尝试加载它时,LoadLibrary 报告错误 127“ERROR_PROC_NOT_FOUND”。当我将其注释掉时,dll 正常加载并且可以调用。我在这个 dll 上运行依赖 walker 并且 CreateProcessAsUserW 被标记为红色并带有错误:
使用 CreateProcessAsUserA 时不会出现此问题,只有在使用 CreateProcessAsUserW 时才会出现此问题。
我也关闭了静态库和静态运行时
我的问题的根源是什么?我该如何解决这个问题,以便 CreateProcessAsUserW 可以工作?