Tôi muốn tạo tệp .vbs chạy tệp .xlsm với đặc quyền quản trị viên [trùng lặp]

Jan 09 2021

Tôi muốn tạo tệp .vbs chạy tệp .xlsm với đặc quyền của quản trị viên.

Phương pháp tôi nghĩ ra là

  1. Chạy tệp excel với tư cách quản trị viên
  2. Mở tệp .xlsm từ Excel được mở bằng đặc quyền của quản trị viên

Tôi đã mở .xlsx với tư cách là quản trị viên, nhưng ...

Set objShell = CreateObject("Shell.Application") 
objShell.ShellExecute "C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE", "" , "", "runas", 0

Tôi không thể kiểm soát tệp .xlsx mà tôi đã mở với tư cách quản trị viên bằng GetObject (, Excel.application)

Em kính nhờ anh chị giúp đỡ.

Trả lời

Hackoo Jan 10 2021 at 15:38

Bạn có thể thử với tệp vbs này:

Option Explicit
Call Run_as_Admin() ' We execute our script with admin rights !
Dim Ws,EXCEL_FILE_PATH
Set Ws = CreateObject("Wscript.Shell")
EXCEL_FILE_PATH = "C:\Path\file.xlsm" ' Just change this line into your path file
Ws.run EXCEL_FILE_PATH,1,True
'----------------------------------------
Sub Run_as_Admin()
If Not WScript.Arguments.Named.Exists("elevate") Then
   CreateObject("Shell.Application").ShellExecute DblQuote(WScript.FullName) _
   , DblQuote(WScript.ScriptFullName) & " /elevate", "", "runas", 1
    WScript.Quit
End If
End Sub
'--------------------------------------
Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function
'-------------------------------------