Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WScript.Shell RegWrite在Windows 8.1上失败_Javascript_Windows_Activex_Hta - Fatal编程技术网

Javascript WScript.Shell RegWrite在Windows 8.1上失败

Javascript WScript.Shell RegWrite在Windows 8.1上失败,javascript,windows,activex,hta,Javascript,Windows,Activex,Hta,我目前使用以下代码修改从.hta安装程序文件调用的JavaScript注册表 var wsh = new ActiveXObject("WScript.Shell"); wsh.RegWrite("HKEY_LOCAL_MACHINE\\Software\\blah\\blah\\myKey", "0","REG_DWORD"); 但是,在Windows 8.1上,此代码失败,注册表项中出现无效的root错误 我已经对此进行了研究,似乎由于缺乏权限而失败,我需要做什么来确保此ActiveX调用

我目前使用以下代码修改从.hta安装程序文件调用的JavaScript注册表

var wsh = new ActiveXObject("WScript.Shell");
wsh.RegWrite("HKEY_LOCAL_MACHINE\\Software\\blah\\blah\\myKey", "0","REG_DWORD");
但是,在Windows 8.1上,此代码失败,注册表项中出现
无效的root
错误


我已经对此进行了研究,似乎由于缺乏权限而失败,我需要做什么来确保此ActiveX调用以提升的权限运行?

您可以使用VBScript函数来测试用户是否具有权限,如下所示(我认为这在Javascript中是不可能的,但这并不重要,因为Javascript可以使用VBScript中声明的函数):


功能测试()
如果CBool(IsNTAdmin)=True,则
如果用户具有提升的权限,test=true'返回true
其他的
test=false'如果用户不执行,则返回false
如果结束
端函数
if(test()){
var wsh=newActiveXObject(“WScript.Shell”);
RegWrite(“HKEY_LOCAL_MACHINE\\Software\\blah\\blah\\myKey”、“0”、“REG_DWORD”);
}
否则{
警告(“您没有权限这样做!”);
}

那么,我如何使用这种方法根据需要升级权限?你不能。在Windows上,你有两种类型的帐户:管理员帐户和有限帐户。管理员已经拥有所有权限,而有限帐户,正如其名称所示,拥有有限权限。如果你想升级权限,你需要使用管理员帐户tor帐户并更改您的帐户类型。如果您不知道如何执行此操作,我建议您使用“windows”标记询问一个新问题。
<script type="text/vbscript">
     Function test()
          If CBool(IsNTAdmin) = True Then
               test = true      'Returns true if the user has elevated permissions
          Else
               test = false     'Returns false if the user doesn't
          End If
     End Function
</script>
<script type="text/javascript">
     if(test()){
          var wsh = new ActiveXObject("WScript.Shell");
          wsh.RegWrite("HKEY_LOCAL_MACHINE\\Software\\blah\\blah\\myKey","0","REG_DWORD");
     }
     else{
          alert("You don't have permission to do this!");
     }
</script>