XP上のログオンユーザーを調べるには?


ENLAC  2003-12-02 12:54:29  No: 52692  IP: [192.*.*.*]

WindowsXPで複数のユーザーが同時にログオンしている時、
それらすべてのユーザーを取得する方法をご存知でしたらご教示ください。
よろしくお願いします。

編集 削除
岡田 之仁  2003-12-02 14:23:10  No: 52693  IP: [192.*.*.*]

ログオンユーザーを取得するのは・・・
http://www.kit.co.jp/vbit/QAndA08.htm
http://www.vbvbvb.com/jp/gtips/0301/gNetWkstaUserGetInfo.html
http://wmifun.atinfinity.net/wmisample/win32_computersystemc.html
ここをご参照下さい。

ただし、WinXPで複数のユーザーはログオンできませんが・・・
WinXP Home では無理
WinXP pro では、コンソール、もしくはTerminalServiceで、
どちらか1ユーザーしかマシンにログオンできません。

ネットワーク経由で共有リソースにアクセスしているユーザーの
ことでしょうか?それとも、httpやftpでのアクセスでしょうか?

共有リソースにアクセスしているユーザーの列挙は、そのリソースが
何かで変わってきますが・・・
http://www.vbvbvb.com/jp/gtips/0251/gNetConnectionEnum.html

この辺が使えるでしょう・・・

Win2000 Server や、WinNT Server TerminalEdition に対し、
複数のログオンユーザーを取得する場合は、ターミナルサービスAPI
になります。
そのものずばりは・・・探してください。
http://www.users.gr.jp/ml/archive/viewer.aspx?name=tse&no=1058
参考までに・・・

以上。

編集 削除
ENLAC  2003-12-02 14:57:44  No: 52694  IP: [192.*.*.*]

岡田様

ご助力ありがとうございます。

まず、私の質問の仕方が悪かったことをお詫び申し上げます。

「XPで同時にログオン」とは、
「簡易ユーザー切り替え」機能を使った場合のことです。
XP(Pro, Home)で複数のユーザーを作成し、
ユーザーAでログオン、なんらかのアプリをユーザー権限で起動、
そのままログオフせずにユーザーを切り替え、
ユーザーBでログオンし、タスクマネージャ等でプロセスをチェックすると、
ユーザーAで起動したアプリが確認できます。

もちろんアクティブになっているユーザーは一人だけですが、
この場合、ユーザーBがカレントユーザーの時に、
ユーザーAもログオンしていることを確かめるAPIや方法を知りたく思い質問させていただきました。

また、ユーザーBがログオン時に、
ユーザーAのユーザー空間で、ユーザーAとしてアプリケーションを起動することは可能でしょうか?

ご存知の方がいらっしゃいましたら、よろしくお願いします。

編集 削除
ENLAC  2003-12-03 15:52:53  No: 52695  IP: [192.*.*.*]

自己レスです。

ユーザー数の方は、WTSEnumerateSessions()等のAPIで解決できそうです。
Session IDからQueryができるみたいなので、そこからUserNameも取れそうです。
(要調査&実装)


>また、ユーザーBがログオン時に、
>ユーザーAのユーザー空間で、ユーザーAとしてアプリケーションを起動することは可能でしょうか?

こちらは引き続き調査中です。

編集 削除