見出し画像

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

Call runasCheck()

With CreateObject("WScript.Shell")
 .Run """" & Replace(UCase(WScript.ScriptFullName), UCase(WScript.ScriptName), "") & "vbetctool.bat""", 1
End With

この記事が気に入ったらサポートをしてみませんか?