在 JS 函数中包含变量字符串(HTA 应用程序)

Include variable string inside JS function (HTA app)

我试图在 cmd /c runas 命令中包含变量,我使用 JS 函数,它给我一个错误,指出找不到指定的文件。

我想我使用了错误的变量调用或其他东西。

这是我的函数:

function runasSRVhta(){
var WShell = new ActiveXObject('WScript.Shell');
// var srvDude = document.getElementById("SRVinput").value;
var SRVguy = "someadmin.srv";
WShell.Run('cmd /c runas /u:sa.local\SRVguy "c:\windows\system32\mshta.exe """\\fs\FIle Share\SA Support\ZverTools\giveMeIPsPLZ.hta""""', 1, true);
}

而不是运行跟随命令作为someadmin.srv它运行它的变量名,而不取值。

问题在这里 - cmd /c runas /u:sa.local\SRVguy,SRVguy 应该是从 var SRVguy = "someadmin.srv";

中获取的变量

我也试过下面的函数,它检测变量值,但是我的 HTA 给了我另一个错误,说它找不到指定的文件。

function testsrv() {
  var shell = new ActiveXObject("WScript.Shell");
  var SRVguy = "someadmin.srv";
  var SRVguyaftertext = 'c:\windows\system32\mshta.exe """\\fs\FIle Share\SA Support\ZverTools\giveMeIPsPLZ.hta"""';
  var satavesrv = 'cmd /c runas /u:sa.local\';
  var theend = "'" + satavesrv + SRVguy + ' "' + SRVguyaftertext + '"' + "'";
  document.write(theend);
  var path = theend;
  shell.run(theend,1,false);
}

哦,我用 document.write 检查输出是否正确,这是输出:

'cmd /c runas /u:sa.local\someadmin.srv "c:\windows\system32\mshta.exe """\fs\FIle Share\SA Support\ZverTools\giveMeIPsPLZ.hta""""'

第二个函数似乎一切正常,但 HTA 弹出一条错误消息,指出找不到指定的文件...

尝试使用模板字符串将变量包含在这样的字符串中

WShell.Run(`cmd /c runas /u:sa.local\${SRVguy} "c:\windows\system32\mshta.exe """\\fs\FIle Share\SA Support\ZverTools\giveMeIPsPLZ.hta""""`, 1, true);

-更新

WShell.Run('cmd /c runas /u:sa.local\' +SRVguy + ' "c:\windows\system32\mshta.exe """\\fs\FIle Share\SA Support\ZverTools\giveMeIPsPLZ.hta"""', 1, true);