2013-12-13 1 views
0

Я использую следующий код для создания реестра Windows.Не удается записать в соответствующее место в реестре Windows

Dim WshShell 

Set WshShell = WScript.CreateObject("WScript.Shell") 

WshShell.RegWrite "HKLM\Software\NewsReader\ConnectionString1", "Server=myServerName3\myInstanceName1;Database=myDataBase1;User Id=myUsername1;Password=myPassword1;", "REG_SZ" 

Set WshShell = Nothing 

Как-то написано не в том месте.

HKEY_USERS\S-1-5-21-3289046681-1693842953-402210132-1123\Software\Classes\VirtualStore\MACHINE\SOFTWARE\NewsReader 

Я выполняю этот скрипт под учетной записью администратора домена, а также у этой учетной записи есть привилегии администратора локально.

Что мне здесь недостает?

P.S. Я нашел это Why is registry written in different location than expected?, но он не выясняет, как мне изменить код ...

+0

См http://www.server-world.info/en/note?os=Other&p=vbs, а также http://stackoverflow.com/questions/17466681/how-to-run-vbs- а-администратор-из-VBS – klugerama

ответ

0

Я нашел, что это правильное поведение Windows. http://msdn.microsoft.com/en-us/library/windows/desktop/aa965884(v=vs.85).aspx

И я проверил его другим кодом. Поэтому я мог читать правильное значение.

Dim WSHShell, value 
On Error Resume Next 
Set WSHShell = CreateObject("WScript.Shell") 
value = WSHShell.RegRead("HKLM\Software\NewsReader\ConnectionString1") 
If err.number <> 0 Then   
    MsgBox("Error") 
Else   
    MsgBox(value) 
End If 
Set WSHShell = nothing 
1

Несмотря на то, что учетная запись имеет права администратора, сценарий должен явно явно повысить привилегии из-за UAC. См. http://www.server-world.info/en/note?os=Other&p=vbs для некоторых идей о том, как это сделать.

Смежные вопросы