El nuevo método que estás implementando no requiere del servicio de Registro Remoto, sin embargo a nivel básico requiere tener habilitado el usuario Administrador con contraseña y puesto en el Firewall la Administración Remota. PERO lo más importante es el envío de credenciales que desde VBScript puro no lo vas a poder hacer, tendrías que usar RunAs.exe para hacer el envío de credenciales, por ejemplo:
En la PC Remota/Servidor (192.168.0.102)::: Activar la cuenta de Administrador y ponerle un password (12345)
Net User Administrador /Active:Yes
Net User Administrador 12345
:: Activar la Administración Remota en el Firewall
NetSh Firewall
Set Service RemoteAdmin Enable
En la PC Cliente::: Crear el Script, por ejemplo "RemoteRegRead.vbs":
Const HKLM = &H80000002
pc = "192.168.0.102"
Set oReg = GetObject
("winmgmts:\\"
& pc
& "\root\default:StdRegProv"
) key = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
value = "ProductName"
oReg.GetStringValue HKLM, key, value, rpta
Wscript.
Echo "Rpta: "
& rpta
:: Usar RunAs para usar las credenciales y ejecutar el script
RunAs /NetOnly /User:Administrador "WScript C:\Users\EdSon\Desktop\RemoteRegRead.vbs"
Ahora bien, si no quieres usar RunAs.exe tendrías que dejar prácticamente sin protección al Servidor para deshabilitar toda obstrucción, esto incluso es algo complejo porque no suele venir fácilmente documentado.
Prefiero hacerlo por VBscript porque necesito guardar el contenido en una variable del PC local que utilizaran otras rutinas de VBscript.
Si tu intención es solo guardar el resultante en una variable, puedes usar un método sencillo, por ejemplo el primero que planteé con Reg.exe o este último con RunAs.exe o usando herramientas de terceros como PSExec. El ejemplo para hacerlo con Reg.exe sería el siguiente:
En la PC Remota/Servidor (192.168.0.102)::: Activar la cuenta de Administrador y ponerle un password (12345)
Net User Administrador /Active:Yes
Net User Administrador 12345
:: Ejecutar el servicio de Registro Remoto
Net Start RemoteRegistry
:: Activar Compartir Archivos e Impresoras en el Firewall
NetSh Firewall
Set Service FileAndPrint Enable
En la PC Cliente:' Crear el Script, por ejemplo "RemoteRegQuery.vbs":
pc = "192.168.0.102"
Set sh = WScript.CreateObject("WScript.Shell")
cmd = "CmdKey /Add:" & pc & " /User:Administrador /Pass:12345"
sh.Exec(cmd)
cmd = "Reg Query ""\\" & pc & "\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"" /V ProductName"
Set rpta = sh.Exec(cmd)
variable = rpta.StdOut.ReadAll()
Call WScript.Echo(variable)
Con ello obtendrías en
variable el resultado de usar el comando Reg.exe, en mi caso:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
ProductName REG_SZ Windows 7 Ultimate
Obviamente el Script debe ser ejecutado como administrador, a partir de ahí puedes parsear el resultado por ejemplo con Split:
value = Split(Split(variable, vbCrLf)(2), " ")(3)
Call WScript.Echo("_" & value & "_")
Bueno, esa sería la idea de usar comandos externos y recuperar su salida.