VBScriptが管理者権限で実行されているかを判定する簡単な方法をご紹介。
はじめに
Windows環境でVBScriptを使っていると、「このスクリプトが管理者権限で実行されているかどうか」を判定したくなる場面があります。
本記事では、簡単にその状態を確認する方法をご紹介します。
管理者権限の判定方法
VBScript自体には、直接的に「現在の実行ユーザーが管理者かどうか」を確認する関数はありません。
しかし、「管理者権限がなければアクセスできない場所」にファイルを書き込もうとすれば、エラーになるため、それを利用して判定できます。
実際のスクリプト
以下が、実際に管理者権限かどうかをチェックするスクリプトです。
Option Explicit
Dim fso, testFile
Dim isAdmin
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
' 管理者権限でしか書き込めないパスを指定
testFile = "C:\Workspace\Test\admin_check.txt"
' テストファイルの作成
Dim file
Set file = fso.CreateTextFile(testFile, True)
If Err.Number = 0 Then
isAdmin = True
file.Close
' テストファイルの削除
fso.DeleteFile testFile
Else
isAdmin = False
End If
On Error GoTo 0
If isAdmin Then
MsgBox "管理者権限で実行されています。", vbInformation
Else
MsgBox "管理者権限ではありません。", vbExclamation
End Ifスクリプトの解説です。
管理者権限がないと書き込みできないパス(サンプルでは、C:\Workspace\Test)を指定します。
ファイルの作成が成功すれば「管理者」、失敗すれば「非管理者」と判断します。
また、成功時には後始末としてファイルを削除しています。
書き込み先のフォルダは、実行環境に応じて適宜調整してください。
まとめ
VBScriptでも、少し工夫すれば実行権限の確認が可能です。
システム系のスクリプトや、環境チェックに活用してみてください。
リンク




コメント