gpt4 book ai didi

c# - 当由一组信用下的计划任务启动的进程在另一组信用下运行另一个程序时,Windows 是否有限制

转载 作者:可可西里 更新时间:2023-11-01 08:12:23 25 4
gpt4 key购买 nike

所以我有一个简单的例子,我有一个应用程序 A,它有一些硬编码的用户 X 的凭据,一个本地管理员,然后它使用硬编码的绝对路径使用这些凭据启动应用程序 B。 A 和 B 以及 dotnet 控制台应用程序,但是它们不与控制台交互,只是将信息写入文件。

当我以交互方式运行 A 时(在我的 Creds 下,通过双击或通过 CMD.exe 或交互式 PowerShell session ,它运行良好。成功调用 B

当我通过计划任务运行它时,A 被 creds 控制,并使用用户 X 调用 B,Process.Start(mystartinfo) 的错误代码是-1073741502或十六进制的 0xC0000142,表示“应用程序未能正确初始化”

但是,如果我使用用户 X 凭据运行调用 A 的计划任务,它会工作..

我做这个小测试主要是因为当我尝试从计划任务或远程处理在 powershell 中执行“start-job -Credential”时,或者在 powershell 或 System.Diagnostic>Process.Start 中调用启动过程时,我看到了类似的行为在相同的场景中从 PowerShell 中。起初我认为这是 PowerShell 中的一个错误,但它似乎更深。.Windows 或特别是 Dotnet,我想知道这是否已知/记录以及是否有任何解决方法。

最佳答案

我遇到了同样的问题(通过服务运行时,powershell 启动进程失败,退出代码为 -1073741502)。

显然这与这个问题有关:Why is this process crashing as soon as it is launched?

Process.Start internally calls CreateProcessWithLogonW(CPLW) whencredentials are specified. CreateProcessWithLogonW cannot be calledfrom a Windows Service Environment (such as an IIS WCF service). Itcan only be called from an Interactive Process (an applicationlaunched by a user who logged on via CTRL-ALT-DELETE).

我想这与运行计划任务时类似,它在 Windows 服务环境中运行。
可能您正在诱导的 API native 调用被阻止从服务运行。

关于c# - 当由一组信用下的计划任务启动的进程在另一组信用下运行另一个程序时,Windows 是否有限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10180310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com