Javascript WScript.Shell RegWrite在Windows 8.1上失败
我目前使用以下代码修改从.hta安装程序文件调用的JavaScript注册表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调用
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>