Ab.の日記: GeoSwitcher + Runas の置き換え
日記 by
Ab.
現在、GeoSwitcher と runas を使用して Administrator user と制限ユーザーをデスクトップ切り替えで同時に使っているのですが、これがどうも Vista ではちゃんと動かないようなので対策を検討中です。
今考えているのは、XP や Windows Server 2003 等の task manager にある user tab で、接続ユーザーの所を右クリックして出てくる「接続」でパスワードを打ち込んでセッションを切り替える機能がありますが、それのパスワード打ち込み不要版が作れないだろうかという事です。
おそらく WinStationConnect() を使えば可能なのではないかと思います。
ただしこの API は平文のパスワードを要求するので、比較的安全性が保証されない制限ユーザー側のプロセスに Administrator user のパスワードを持たせる訳には行きませんからそのまま素直には使えません。
やるとすると
今考えているのは、XP や Windows Server 2003 等の task manager にある user tab で、接続ユーザーの所を右クリックして出てくる「接続」でパスワードを打ち込んでセッションを切り替える機能がありますが、それのパスワード打ち込み不要版が作れないだろうかという事です。
おそらく WinStationConnect() を使えば可能なのではないかと思います。
ただしこの API は平文のパスワードを要求するので、比較的安全性が保証されない制限ユーザー側のプロセスに Administrator user のパスワードを持たせる訳には行きませんからそのまま素直には使えません。
やるとすると
- Administrator user 側を server にして、こちらで password を一括管理、制限ユーザー側のクライアントでは切り替えのリクエストだけを出せるようにする。
- サービスプロセスが server になって Administrator user も制限ユーザーもサービスプロセスと通信してセッションを切り替えてもらう
のどちらかになる感じでしょうか。
ただし、もしかするとアクティブじゃないセッションからのセッション切り替えが可能ではない可能性もあるので、その点を先に確認しないと。
また、WindowStation のレベルで切り替えるようにすると、副作用として今まで同じ WindowStation 内で DeskTop だけの切り替えだったので共有できていたクリップボードがセッション間では共有できなくなります。
これはこれでセキュリティ上は好ましいのですが、利便性は大きく下がってしまうのでセッション間でのコピペを補助する共有メモウィンドウみたいなプログラムも探すか自作するかしたいところです。
GeoSwitcher + Runas の置き換え More ログイン