2014-12-22 2 views
1

현재 다음 코드를 사용하여 .hta 설치 프로그램 파일에서 호출되는 JavaScript의 레지스트리를 수정합니다.Windows 8.1에서 WScript.Shell RegWrite가 실패합니다.

var wsh = new ActiveXObject("WScript.Shell"); 
wsh.RegWrite("HKEY_LOCAL_MACHINE\\Software\\blah\\blah\\myKey", "0","REG_DWORD"); 

그러나 Windows 8.1에서이 코드는 Invalid root in registry key 오류로 실패합니다.

내가 조사한 결과 권한 부족으로 실패한 것 같습니다.이 ActiveX 호출이 높은 권한으로 실행되고 있는지 확인하려면 어떻게해야합니까?

답변

1

당신은 (내가 그 자바 스크립트에서 가능하다고 생각하지 않지만, 자바 스크립트가 VBScript로 선언 된 기능을 사용할 수 있기 때문에 그것은 중요하지 않습니다) 같은 사용자가 권한이 있는지 테스트하는 VBScript 함수를 사용할 수 있습니다

<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> 
+0

그렇다면이 방법을 사용하여 필요에 따라 권한을 확대 할 수 있습니까? –

+1

할 수 없습니다. Windows에서는 관리자 및 제한된 계정의 두 가지 유형의 계정이 있습니다. 관리자는 이미 모든 권한을 가지고 있으며 제한된 계정은 이름에서 알 수 있듯이 제한된 권한을가집니다. 권한을 확대하려는 경우 관리자 계정으로 이동하여 계정 유형을 변경해야합니다. 이 작업을 수행하는 방법을 모르는 경우 "windows"태그를 사용하여 새 질문을하는 것이 좋습니다. –

관련 문제