簡単な例があります。アプリ A には、ローカル管理者であるユーザー X へのハードコードされた資格情報があり、ハードコードされた絶対パスを使用してそれらの資格情報でアプリ B を起動します。A と B の両方と dotnet コンソール アプリケーションですが、コンソールとは対話せず、情報をファイルに書き出すだけです。
A を対話的に (Creds の下で、ダブルクリックして、または CMD.exe を介して、または対話型の PowerShell セッションで) 実行すると、正常に実行されます。正常に B を呼び出す
Aがcredsの下にあるスケジュールされたタスクを実行し、ユーザーXでBを呼び出すと、Process.Start(mystartinfo)のエラーコードは-1073741502または16進数で0xC0000142であり、「アプリケーションは正しく初期化できませんでした」を意味します
ただし、ユーザー X 資格情報を使用して A を呼び出すスケジュールされたタスクを実行すると、機能します。
この小さなテストを行った主な理由は、スケジュールされたタスクまたはリモート処理から PowerShell で "start-job -Credential" を実行しようとしたとき、または PowerShell 内から PowerShell または System.Diagnostic>Process.Start で start-process を呼び出したときに同様の動作が見られるためです。同じシナリオで。最初は PowerShell のバグだと思っていましたが、もっと深いようです。