投稿日 | : 2005/06/13(Mon) 18:07 |
投稿者 | : A3 |
Eメール | : |
URL | : |
タイトル | : 別の方法で目的を達成できたので、ご報告いたします。 |
A3です。
質問の内容が解決出来たわけではありませんが
別の方法で目的を達成できたので、ご報告いたします。
よくよく考えてみると、私がやりたいことは
・VBプログラムから、別ユーザ権限でVBScriptを実行したい。
ということで、別にmsscript.ocxにこだわる必要がなかったことに気がつきました。
そこで、別ユーザでプロセスを起動するAPIをつかって
cscript.exe/wscript.exeを起動してみたところ、目的の動作が出来ました。
(NTでも動かす場合:LogonUser/CreateProcessAsUser/CloseHandle)
(2000以降専用なら:CreateProcessWithLogonW)
前者の場合は、実行ユーザに以下の特権が必要でした。
・SE_TBC_NAME オペレーションシステムの一部として動作
・SE_CHANGE_NOTIFY_NAME 走査チェックのバイパス
・SE_ASSIGNPRIMARYTOKEN_NAME プロセスレベルトークンの置き換え
・SE_INCREASE_QUOTA_NAME クォータの増加
後者の場合ですと、実行ユーザに特権は不要でした。
※別ユーザにローカルログオン特権は必要。
後者の場合、UNICODE文字列をAPIに渡さなければいけないことに
気付くのに時間がかかりましたが、なんとか動かすことができました。
以上、ご報告でした。