VBScript アプリケーション開発

【VBScript】管理者権限でVBScriptを実行させる

投稿日:

このページの内容

どんな時にこの機能が必要になるか

このページのタイトルにある通りですが、管理者権限が必要になるフォルダ内のファイルの編集などをVBSriptで行いたい場合に、この機能が必要となります。
ユーザーフォルダ内であれば当然この機能はほとんど必要ないかもしれませんが、例えばProgram Filesフォルダ内やProgramDataフォルダ内の変更を行う時に利用することが出来ます。

私の場合は、インストールしていたアプリケーションの不具合対応で、ProgramDataフォルダ内にある特定のファイル削除が必要になったため、PCがあまり得意ではない人でも簡単に実行できるようにするために作成しました。
※ProgramDataフォルダは隠しフォルダとなっている場合があるため、隠しフォルダの表示の説明からするのが手間だったためVBScriptを配布する形で適用してもらいました。

ソースコード

実行させたいScriptの先頭に、以下の記述を追加するだけでOKです。
但し、この記述では引数を渡して実行することはできません。

Option Explicit
On Error Resume Next

'管理者権限で実行させる
Dim oShellApp
Set oShellApp = Wscript.CreateObject("Shell.Application")
if Wscript.Arguments.Count = 0 then
  oShellApp.ShellExecute "wscript.exe", WScript.ScriptFullName & " runas", "", "runas", 1
  Wscript.Quit
end if
Set oShellApp = Nothing

'これ以降に実行したい処理を記述していく

簡単な解説ですが、
VBScriptファイルをダブルクリックして実行したときは、引数を渡していないため、
if Wscript.Argments.Count = 0 then
の中に入っていきます。

そして、実際にスクリプトを実行する本体であるwscript.exe に引数として、ダブルクリックしたファイルのパス(WScript.ScriptFullNameで取得できる)を渡す際に” runas”, “”, “runas”, 1を管理者権限として実行するための引数として渡して実行させています。
※runas → run as : このあとに記述するユーザーで実行するということです。ただし、今回は自分が実行する

管理者権限を実行するための引数を渡しているので、
if Wscript.Argments.Count = 0 then
のプロセスには入らずに、これ以降の処理へ入っていくことになります。

もちろんこれを実行すると、
“このアプリがデバイスに変更を加えることを許可しますか?”
というメッセージが表示され、”はい”を選択しない限りは実行されないようになっています。

Follow me!

-VBScript, アプリケーション開発
-

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

no image

【C#】【VBScript】アプリケーションの自動再起動

このページの内容 この機能を作成した理由ソースコード この機能を作成した理由 24H稼働している工場等のクラサバ系のシステムで、サーバー側ソフトが原因不明のハングアップをしてしまい、夜中に呼び出しを受 …

GASの利用 ~スプレッドシートの値が取得できない or 想定と異なる場合~

getValuesでスプレッドシートの値を取得しようとした際に、・値が取得できない・取得した値が想定していたものと違うという状況に遭遇した場合について、このページでは記載しています。 ※このページの …

GASの利用 ~新しい生活様式のためのメモ②~

このページの内容 コーディング(.gs)コーディング(view.html)実行結果メニュー画面のコーディング(menu.html)サーバー側のコーディング全体(.gs) ①のページにて入力画面を作成し …

GASの利用 ~Webアプリでスプレッドシートの値を表示する~

このページの内容 スプレッドシートの値の読み込みと書き込み実際にやってみる初回実行時のみ必要になる作業について実行した結果このアプリを修正していく場合 スプレッドシートの値の読み込みと書き込み GAS …

GASの利用 ~新しい生活様式のためのメモ①~

コロナウィルスの拡大により、政府から“「新しい生活様式」の実践例”というものが、公開されていることをご存知の方も多いと思います。その中で、“移動に関する感染対策”という項目の中で、“発症したときのため …

このサイトの管理者について

1980年代生まれ
石川県在住

メーカー2社経験後に退社

1年程度自由に在職中はできなかったことにチャレンジ

その後コロナの影響でなかなか仕事が見つかりませんでしたが、無事就職

現在はシステム会社に勤務中

PAGE TOP