2013-09-23 5 views
0

나는 한 번의 클릭으로 Skype의 레지스트리 설정을 변경할 수있는 많은 다른 솔루션을 시도해 왔습니다. 나는 심지어 지연과 입력을 사용하여 스트레이트 스크립팅을 시도했지만 아무것도 작동하지 않는 것 같습니다.VBS 스크립트로 레지스트리 변경하기

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype\Phone] 
"ProxySetting"=- 
"ProxyAddress"=- 
"DisableUDP"=- 

그러나 이것은 여전히 ​​"RegistryEditor"에서 확인 상자가 발생합니다

내가 찍었을 가장 가까운

은 다음과 같다. 나는 스크립트를 입력 받아 보려고 노력했지만이 파일을 실행하고 확인 상자를 처리하기 위해 두 번 입력하는 "별도의 VBS 스크립트를 만들려고했지만"성공하지 못했습니다.

무엇이 적절한 해결책이 될까요?

+0

나는 내 자신의 질문에 대한 해결책을 발견했다. objShell.Run "regedit를/s의 \\ 경로 \ registry.reg 또는이 같은 : 이 regedit.exe를/s의 Regfile.reg있는 –

+1

포스트 대답 자신 그래서 당신은 레지스트리를 실행할 수 있습니다 은 다음과 같이 자동으로 파일 사람들은 질문과 함께 답을 찾고 찾을 수 있습니다. –

+0

나는 할 수 있으면 좋겠지 만 나는 아직 충분한 평판이 없다. –

답변

1

설정을 사용하여 파일을 만든 다음 해당 파일을 가져와야하므로 regedit /s을 사용하는 것이 가능하지만 조금 어색합니다. 그리고 비록 우리가 그것을 무시하더라도, 솔루션은 여전히 ​​regedit이 가져 오기가 성공했는지 여부를 나타내는 상태 코드를 반환하지 않는 문제가있었습니다. 후자는 reg.exeregedit.exe를 대체함으로써 해결 될 수있다 :

rc = objShell.Run("reg import \\host\share\registry.reg", 0, True) 

그러나, 외부 파일을 가져올 필요합니다. VBScript를 직접 WshShell 객체를 통해 중, 생성, 조작 및 레지스트리 키와 값을 삭제할 수 있습니다

Set sh = CreateObject("WScript.Shell") 

sh.RegDelete "HKLM\SOFTWARE\Policies\Skype\Phone\ProxySetting" 
sh.RegDelete "HKLM\SOFTWARE\Policies\Skype\Phone\ProxyAddress" 
sh.RegDelete "HKLM\SOFTWARE\Policies\Skype\Phone\DisableUDP" 

또는 WMI를 통해

는 :

Const HKLM = &h80000001 
Const key = "SOFTWARE\Policies\Skype\Phone" 

Set reg = GetObject("winmgmts://./root/default:StdRegProv") 

rc1 = reg.DeleteValue(HKLM, key, "ProxySetting") 
rc2 = reg.DeleteValue(HKLM, key, "ProxyAddress") 
rc3 = reg.DeleteValue(HKLM, key, "DisableUDP") 
관련 문제