以管理员身份执行脚本时找不到文件

File not found when executing script as admin

我有这个启动 HTA 的脚本,需要以管理员权限启动。

Set objShell = CreateObject("Wscript.Shell")

isLocal = MsgBox("Launch app for a local configuration ?", vbYesNo + vbQuestion, "Settings")
If isLocal = vbYes Then
    objShell.Run "src\Configurator.hta"
Else
    'This code doesn't matter here
End If

此脚本在正常启动时运行良好,但当我以管理员身份(通过上下文菜单)执行 VBS 时,我收到 objShell.Run [=22= 的文件未找到错误]行。

当我添加以下代码时,两种执行方法的结果相同(给出执行脚本的目录)。

scriptdir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
MsgBox scriptdir

非常感谢对此问题的任何帮助或解释。

你可以看看这个:Procedure to run HTA elevated

<html> 
<head> 
<title>HTA Helpomatic</title> 

<HTA:APPLICATION 
     ID="oHTA" 
     APPLICATIONNAME="HTAHelpomatic" 
     SCROLL="yes" 
     SINGLEINSTANCE="yes" 
> 
<!-- ID="objHTAHelpomatic" --> 
<!-- WINDOWSTATE="maximize" --> 

</head> 

<SCRIPT Language="VBScript"> 

If HTAElevate() = True Then 
    CreateObject("WScript.Shell").Run "mmc.exe compmgmt.msc", , True 
    Call Main() 
End If 

Sub Main() 
    MsgBox "HTA-Ende", 4096 
End Sub 


'*** v13.3 *** www.dieseyer.de ***************************** 
Function HTAElevate() 
'*********************************************************** 
' Unter Windows x64 laufen VBS' nach einem Doppelklick in der x64-Umgebung 
' mit %WinDi%\System32\wscript.exe oder mit %WinDi%\System32\cscript.exe. 
' In der x64-Umgebung laufen VBS aber nicht (richtig). Die Prozedur 
' HTAElevate() erkennt dies und startet ggf. das VBS in der 

  Const Elev = " /elevated" 

' MsgBox oHTA.commandLine, , "5016 :: " 

' Trace32Log "5018 :: oHTA.commandLine: ==" & oHTA.commandLine & "==", 1 

  HTAElevate = True 

' If InStr( LCase( oHTA.commandLine ), Elev) > 0 then MsgBox oHTA.commandLine, , "5022 :: " 
  If InStr( LCase( oHTA.commandLine ), Elev) > 0 then Exit Function 


  On Error Resume Next 
    window.resizeto 750, 10 ' : window.moveto screen.width / 2, screen.height / 2 
  On Error GoTo 0 

' MsgBox oHTA.commandLine, , "5030 :: " 

  createobject("Shell.Application").ShellExecute "mshta.exe", oHTA.commandLine & Elev, "", "runas", 1 

  HTAElevate = False 

  self.close 

End Function ' HTAElevate() 


</SCRIPT> 
<body> 


</body> 
</html>