所以我有一个简单的例子,我有一个应用程序 A,它对用户 X 有一些硬编码的凭据,一个本地管理员,然后它使用硬编码的绝对路径使用这些凭据启动应用程序 B。A 和 B 以及 dotnet 控制台应用程序,但是它们不与控制台交互,只是将信息写入文件。
当我以交互方式运行 A 时(在我的 Creds 下,通过双击,或通过 CMD.exe 或交互式 PowerShell 会话运行良好。成功调用 B
当我通过计划任务运行它时,A 受信任,并使用用户 X 调用 B,Process.Start(mystartinfo) 的错误代码是十六进制的 -1073741502 或 0xC0000142,这意味着“应用程序无法正确初始化”
但是,如果我使用用户 X 凭据运行调用 A 的计划任务,它就可以工作..
我做了这个小测试,主要是因为我在尝试从计划任务或远程处理中尝试在 powershell 中执行“start-job -Credential”时看到类似的行为,或者在 powershell 中调用 start-process 或 System.Diagnostic>Process.Start 从 PowerShell 中在相同的场景中。起初我认为这是 PowerShell 中的一个错误,但它似乎更深。无论是 Windows 还是特别是 Dotnet,我想知道这是否已知/记录在案,以及是否有任何解决方法。