問題タブ [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を呼び出すときにフラグやその他のものを使用する方法に依存します。
redirect - 出力を createprocessasuser からファイルにリダイレクトします
指定したアドレスからファイルをダウンロードして
createprocessasuser
関数で実行するWindowsサービスを作成しましたが、出力をファイルにリダイレクトしようとするまではすべてうまくいきました
何も実行されていないプログラムの新しいウィンドウが表示されますが、ログファイルにも何もありません..
ここに私のコードがあります:
リダイレクトなしで実行すると正常に動作し、このコードを別のプログラムで実行して使用createprocess
すると、リダイレクトでも正常に動作しますが、createprocessasuser
( win サービスから実行されるため) を使用するとログファイルには何もありません. 何か案は?
windows - CreateProcessWithLogonW エラー 1783: スタブが不正なデータを受信しました
私はこのテストコードを持っています:
私の友人のPCでは、常に正常に動作します。私のPCでは時々動作します!ときどき、ほとんどの場合、1783 エラーが発生します。PC でいくつかのサービスを削除しようとしましたが、解決しませんでした。コードが他の多くの PC で動作する必要があるため、このエラーが表示される理由と修正方法を理解する必要があります。
c# - createprocessasuser の stdout をパイプにリダイレクトすると、読み取り時にハングする
CreateProcessAsUser を使用してサービスからプロセスを実行し、stdout を名前付きパイプにリダイレクトしています。しかし、名前付きパイプから読み取ろうとすると、読み取りでハングし、戻りません。これを別のタスク(現在は以下で実装されている)で試し、メインプロセスで読んだだけです。C# の AnonymousPipeServerStream クラス (以下のコメントアウトされたコードを参照) も使用してみましたが、同じハングがありました。
私が見逃しているアイデアはありますか?ありがとう!
c# - C# で CreateProcessAsUser から標準出力をキャプチャする
現在、pinvoke CreateProcessAsUser API を使用して、asp.net Web サイト内でプロセスを開始しています。これは、ログオンした AD ユーザーを偽装するのに完全に機能します。
ただし、コンソール出力の結果文字列は常に空です。何が問題なのかわかりません。クラッシュも出力も何もありません。
c# - 拡張属性 (STARTUPINFOEX) で CreateProcessWithLogonW を使用する方法
共有パイプを介してファイルのリダイレクトを実行し、継承されたハンドルのリストをそれらの stdout/stderr/stdin ハンドルのみにフィルター処理できるようにしたいと考えています。また、別のユーザーとして起動できる必要があります。
- CreateProcess は、STARTUPINFOEX を取得し、属性を渡さない場合、または単一の属性を渡す場合 (親を変更するか、継承されたハンドルをフィルター処理する場合) に機能します。
- CreateProcessWithLogonW は、STARTUPINFOEX を取得するときに機能しますが、作成フラグから EXTENDED_STARTUPINFO_PRESENT を除外した場合にのみ機能します (基本的に、startupinfo.cb が完全な構造体であっても、STARTUPINFOEX を STARTUPINFO として扱います)。
- EXTENDED_STARTUPINFO_PRESENT を追加すると、属性を使用しなくても (CreateProcess で機能します)、「パラメーターが正しくありません」というメッセージが表示されます。
// | コメントを外すまで、以下は機能します。NativeMethods.EXTENDED_STARTUPINFO_PRESENT、
Edit.1 IntPtr.Zero 以外の拡張属性を必要とするコントラクトの違いの場合に備えて、フィルター処理されたハンドル属性リストで送信されます。それでも失敗しました。繰り返しますが、CreateProcess で作業し、これらの新しい sig を使用して CreateProcessWithLogonW で失敗しました。
c++ - Local System Admin からの CreateProcessAsUser が Windows スタイルを適用しない
別のユーザーとしてアプリケーションを実行するために、ローカル システム管理者から Windows API CreateProcessAsUser を使用するアプリケーションに問題があります。これまでのところすべて正常に動作していますが、Windows のウィンドウとフレームのスタイルが何らかの理由で適用されていません。ウィンドウは常に、巨大なフレームを持つ Windows 2000 ウィンドウのように見えます。スクリーンショットもいくつか添付しました
また、ハンドルなどを気にせずに C++ ですべての魔法を行う方法のサンプル コードもいくつか書きました。
パスワード「test」が設定されたユーザー「test」がローカルにあることを確認し、投稿されたソースコードをローカルシステム管理者として実行してみてください。他のユーザーがコードを実行しようとすると、エラー コード 1413 が発生します。
この問題は、主に VirtualBox の Windows 7 VM、一部の Windows 7 システム、およびすべての Windows 8.1 システムで発生します。非常に奇妙な。誰でもこの問題を解決するのを手伝ってもらえますか? ありがとう!