質問者
サービスプログラムからセッションを作成する方法について

質問
-
Windows OSのログオン待ちでない任意のタイミングで、サービスプログラムから、
セッションの作成をすることはできますでしょうか?
※ここで言う"セッション"とは、Windows OSのユーザログインの単位で
作成されるものを指します。Credential Provider を使用して実現できないものかと考えましたが、
Credential Provider DLLのロード元となる logonui.exe は常に起動している
わけではないので、不可能なように思えます。
LogonUserというWin32関数も試しましたが、認証ができるだけで、セッションの
作成という動作にはなりませんでした。OSはWindows Server 2012 R2を想定しています。
よい方法がありましたら教えてください。
すべての返信
-
質問文には「セッションの作成」としか書かれていませんが、セッションを作成したい理由は何でしょうか? 別のアプローチで解決する可能性もあります。
とりあえず、CreateProcessAsUserやCreateProcessWithLogonWで求めるものが実現できるかは試されましたでしょうか?
-
ご回答をいただきありがとうございます。
開発中のリモート操作ツール※にて、接続時に新たにセッションを起してそのセッショ
ン上でリモート操作を行なうような機能の追加を考えており、その実現性を検討しています。
やりたいことは、まさにOSのリモートデスクトップがやっているようなことです。
※リモート操作ツールとは、例えばpcAnywhereやLAPLINKのような製品を指します。CreateProcessAsUser、CreateProcessWithLogonW という関数ですが、これらはプロセス
を作成する関数ですのでどのような使い方をしてもそれ自体がセッションを作成すると
いう動作にはならないのではないかと思っています。何かセッション作成のための特別なコマンドがあって、それを上記の関数で実行する
必要があるのであれば試してみたいと思っています。よろしくお願いいたします。