備忘録:Windows7 Domain Usersの場合の管理者権限実行する

ものすごく苦労したのでメモ。

Windows7環境でVB6.0で開発したDLLがレジストリに登録されずに起動できない問題が起きてました。

実行しようとすると
“classfactoryは要求されたクラスを提供できません”
とエラー。

RegSvr32でレジストリ登録しようとすると
DllRegisterServer in xxxxxxxx.dll failed.
Return code was: 0x80004005

というエラー。
管理者権限が無いから登録出来ないよ って事らしいです。

っでcmdプロンプト右クリックで管理者として実行を選んで管理者モードで
RegSvr32しても登録されず 同様のエラー

っで色々探してRunasコマンドで管理者としてコマンドプロンプトを実行する方法を試したところ
見事に成功!

複数のDLLを一括でレジストリに登録するので
regsvr32実行のバッチを用意して

Runas /user:domain\administrator C:\hoge.bat
を実行。

見事にユーザー権限でレジストリ登録の処理に成功。
ただし管理者ユーザーのパスワードを入力しなければならないので…
毎回入力するわけにもいかず。

Runas /savecred /user:domain\administrator C:\hoge.bat

/savecred オプションで資格情報に保存。

初回のみ管理者が管理者パスワードを入力して情報を記憶。
次回のDLLアップデート時にこのバッチが走るようにしておけばDLL更新も出来る。

VB6.0のプロジェクト… そろそろ何とかしたいんですけどねー…

★参考にさせて頂いたサイト
http://www.office-qa.com/win/win178.htm
http://okwave.jp/qa/q925052.html

コメント

タイトルとURLをコピーしました