2011/12/01(木)
VBSを毎回「管理者として実行」する方法
WindowsVista以降、セットアップや重要なプログラムを実行する際には「管理者として実行」というモードで開く必要があり、これを選択するとUACの確認画面が出るようになった。
仕事でよくVBSのスクリプトを書くのだが、その処理中でレジストリの「HKEY_LOCAL_MACHINE」に書き込みを行ったり、Windowsフォルダにデータを書き込んだりする場合は、いくらユーザにAdmin権限があったとしても、書き込みに失敗してしまう。
そのため、こういう処理を行うプログラムの場合は、一般的に実行プログラムを右クリックして「管理者として実行」を選択すれば良いのだが、VBSの場合、右クリックしてもこのメニューが表示されない。
そのようなVBSを実行させたい場合、とりあえず回避策として
- BATファイルを作成
- BATファイルないにVBSの実行パスを記載
- BATファイルを右クリックして「管理者として実行」を選択
としていたが、これではファイルが余計にできてしまうし、単純なダブルクリックでは「管理者として実行」にならないので面倒くさい。
そこで、これを回避すべく、VBSを普通に開くだけで必ず「管理者として実行」になるよう改良してみた。
ネットで公開されていたソースを元に、使い勝手がいいよう自分なりにアレンジ。
Function runasCheck() Dim strScriptPathName Dim flgRunasMode Dim objWMI, osInfo, flag, objShell, os Dim strArgs Dim args Set args = WScript.Arguments flgRunasMode = False strArgs = "" ' フラグの取得 If args.Count > 0 Then If UCase(args.item(0)) = "/RUNAS" Then flgRunasMode = True End If strArgs = strArgs & " " & args.item(0) End If Set objWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") Set osInfo = objWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem") flag = false For Each os in osInfo If Left(os.Version, 3) >= 6.0 Then flag = True End If Next Set objShell = CreateObject("Shell.Application") If flgRunasMode = False Then If flag = True Then objShell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """" & " /RUNAS " & strArgs, _ "", "runas", 1 Wscript.Quit End If End If End Function
これを呪文のように、単純にコピペでVBSに記載。
そして、管理者として実行したいVBSのソース冒頭に、
Call runasCheck()
と記載するだけで、実行管理者権限で実行しなおしてくれる。
[改訂版] VBScriptポケットリファレンス (POCKET REFERENCE)
- 作者: (株)アンク
- 出版社/メーカー: 技術評論社
- 発売日: 2006/05/30
- メディア: 単行本
- 購入: 2人 クリック: 50回
- この商品を含むブログ (8件) を見る
- 302 http://www.google.co.jp/url?sa=t&rct=j&q=vbs+管理者として実行&source=web&cd=7&ved=0CFsQFjAG&url=http://d.hatena.ne.jp/masahiror/20111201/vbs_admin_run&ei=uLPcTui6O6_0mAXgqaHfCw&usg=AFQjCN
- 275 http://www.facebook.com/plugins/like.php?channel_url=http://d.hatena.ne.jp/masahiror/20111201/vbs_admin_run?fb_xd_fragment#?=&cb=f1059c33956c58e&relation=parent.parent&transport=fragment&extended_social_context=false&href=h
- 164 http://static.ak.facebook.com/connect/xd_arbiter.php?version=6
- 153 http://www.google.co.jp/url?sa=t&rct=j&q=vbs 管理者権限で実行&source=web&cd=9&sqi=2&ved=0CGsQFjAI&url=http://d.hatena.ne.jp/masahiror/20111201/vbs_admin_run&ei=QMvhTuDnHofQmAWv7a3lBA&us
- 124 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=3&sqi=2&ved=0CEMQFjAC&url=http://d.hatena.ne.jp/masahiror/20111201/vbs_admin_run&ei=uzovT5zoCKjKmQXJsZnHDw&usg=AFQjCNEBvSbOTx5aiZ5aeagsMjlkuKDAMQ&sig2=fFKKEg2BqwNMmMAVPTEdpg
- 115 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=17&ved=0CF8QFjAGOAo&url=http://d.hatena.ne.jp/masahiror/20111201/vbs_admin_run&ei=4eVtT6mBMuKiiAfz8uiCBg&usg=AFQjCNEBvSbOTx5aiZ5aeagsMjlkuKDAMQ&sig2=iy8aQ-hou5U1PrRp4-XUfw
- 90 http://www.google.co.jp/url?sa=t&rct=j&q=管理者として開く+管理ソフト&source=web&cd=9&ved=0CI0BEBYwCA&url=http://d.hatena.ne.jp/masahiror/20111201/vbs_ad
- 57 http://www.google.co.jp/url?sa=t&rct=j&q=vbscript+管理者として実行&source=web&cd=8&sqi=2&ved=0CFwQFjAH&url=http://d.hatena.ne.jp/masahiror/20111201/vbs_admin_run&ei=ntzzTtibHKPGmAXgk72EAg
- 47 http://search.yahoo.co.jp/search?p=vbs+管理者権限&ei=UTF-8&meta=vc=&pstart=1&fr=slv1-ff2tbtop&b=11
- 46 http://www.google.co.jp/search?q=vbs+管理者として実行&rls=com.microsoft:ja:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7TSHJ&redir_esc=&ei=Fs3dTrLRHcj4mAW4v9SCBQ
■ このページについて
ホームページ:MN SOFTWARE HOMEPAGE からリンクしてるブログです。
公開しているソフトの開発状況や、作者の日常の出来事・イベント・体験談・考え事などの記録。購入したもののレビューやお気に入りのものの紹介なども。カウンタ→
目的の記事が表示されていない場合は、検索してみてください。
※検索ワードは1単語程度に減らした方がヒットしやすいです。例:「ご飯 炊き方 梅干」→「ご飯」