2011-08-01 6 views
0

に取り組んでいません。 LOGONUSER loadProfile CreateProcessAsUserCreateProcessAsUser勝つAPIは、私は勝つ-API関数を使用しています非win7のプラットフォーム

Javaとjniwrapperを使用します。

私は、サービスプロセス(ローカルシステムアカウント)として自分のアプリケーションを実行します。

私はCreateProcessWithLogonを使用していた場合 - それは私がサービス(普通のスタンドアローンアプリケーション)から実行しているわけではない場合にのみ機能します。

のWindows 7で正常に作成されたプロセス、および勝利XP上および2003サーバーを獲得していません。

はあなたがどんな手掛かりを持っていますか? winプラットフォームでプロセス/ユーザー権限をどのように管理できますか?

感謝....

+0

:あなたは追加の同じここで情報を見つけることができ、また

(...残念ながら、アンマネージコード)すべてのACL ものを行う方法についてのコードサンプルが含まれています非常に面倒な作業です。 [this]を読んでください(http://blogs.msdn.com/b/winsdk/archive/2009/07/14/launching-an-interactive-process-from-windows-service-in-windows-vista- and-later.aspx)を参照してください。 –

答えて

0

彼ら道のサービスと窓のお得な情報とそれらがどのように周りNT 6.0(Vistaでは、Server 2003のR2)を変え対話することができます。それは、インタラクティブではないと思われるものからプロセス、特にUIの作成を必要とするため、通常は複雑なテーマです。 それを理解するには、Windows上のセッション、Winsta、およびデスクトップの知識が必要なことがよくあります。

変更内容(「セッション0分離」と呼ばれる)は、 http://msdn.microsoft.com/en-us/windows/hardware/gg463353と記載されています。 サービスからUIを表示する正しい方法は、CreateProcessAsUserを使用して新しいプロセスを生成しますが、Windows 7マシンが稼動してから既に知っています。以前のバージョンでは、それはwinstaとデスクトップへのユーザー(つまり、セキュリティ保護可能なオブジェクトがあり、ファイルのように、ACLを持つオブジェクト)が自動的に追加されませんでした:

私の記憶が正しければ

は、CreateProcessAsUserの動作があまりにも変更しました

は、「アプリケーションがlpDesktopメンバーでデスクトップを指定した場合、それは 指定されたウィンドウステーションとデスクトップに 指定したユーザーアカウントの権限を追加するアプリケーションの責任です。」

この引用はここから取得しました: http://support.microsoft.com/kb/165194 非常に有用な記事! Windowsサービスがあるから、対話型プロセスの作成 http://msdn.microsoft.com/en-us/library/aa379608%28v=vs.85%29.aspx

+0

ありがとう、それは多くの助けた – yonatan

+0

あなたは大歓迎です! –

+0

これは非常に興味深いです。 JavaでGUIを使ってラッパーサービスを作成するためのチュートリアルがありますか? – psv

関連する問題