スケジュールされたタスクとして、Windows Server 2003 で .NET コンソール アプリを実行しています。
これは Process クラスを使用して別の小さなコンソール アプリを実行しますが、Process.StartInfo.Username を使用してユーザーになりすまして実行します。
管理者のスケジュールされたタスクで偽装されたアカウントの場合、それは完全に機能しますが、そうでない場合はエラーが発生します:
「アプリケーションを正しく初期化できませんでした (0xc0000142)」</p>
ユーザーに「バッチジョブとしてログオン」および「ローカルでログオン」を試みましたが、これは効果がないようです。コンソール アプリは、偽装されたユーザーとして起動しますが、失敗します。
Process Monitor を見ると、失敗する前の最後のイベントは次のとおりです。
Tool1.exe - イメージの読み込み - C:\WINDOWS\system32\kernel32.dll - 成功
ツールに依存して実行したところ、これがエラーであると報告されました。
GetProcAddress(0x77E40000 [c:\windows\system32\KERNEL32.DLL], "FlsAlloc") は、アドレス 0x7900746D の "c:\windows\system32\MSCOREE.DLL" から呼び出され、スレッド 1 によって 0x77E6B49C を返しました。"c:\stfinstall を終了しました\stf\tools\tool1\TOOL1.EXE" (プロセス 0xB3C) をスレッド 1 でコード 1282 (0x502) で実行します。
誰かがこのエラーの原因について何か知っている場合、またはそれを修正する方法を知っている場合は、お知らせください!
代替アプローチの提案も歓迎します
ありがとう :)