Buenas tardes a todos:
He realizado un Script para modificar un valor del registro de Windows, se me hizo complicado por que la CADENA DEL REGISTRO donde se almacena el valor a modificar depende del usuario activo, asiq el Script no puede ser genérico, depende del SID del Usuario Actual.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Dim USUARIO
Dim DOMINIO
Dim SID
Set objshell = createobject("wscript.shell")
USUARIO = objshell.expandenvironmentstrings("%USERNAME%")
DOMINIO = objshell.expandenvironmentstrings("%USERDOMAIN%")
Set objAccount = objWMIService.Get _
("Win32_UserAccount.Name='" & USUARIO & "',Domain='" & DOMINIO & "'")
SID = objAccount.SID
Msgbox objshell.expandenvironmentstrings(SID)
DIM CADENA
CADENA = objshell.expandenvironmentstrings("HKEY_USERS\"&SID&"\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications\GlobalUserDisabled")
Msgbox objshell.expandenvironmentstrings(CADENA)
On Error Resume Next
Set oShell = WScript.CreateObject("WScript.Shell")
dato = oShell.RegRead(CADENA)
Msgbox objshell.expandenvironmentstrings(dato)
Dim WshShell, bKey
Set WshShell = WScript.CreateObject("WScript.Shell")
IF Err.Number <> 0 THEN 'Ha ocurrido un error
IF Err.Number = -2147024894 THEN
WshShell.RegWrite "CADENA", 1, "REG_DWORD"
MsgBox ("Opcion 1")
END IF
WScript.Quit
ELSE 'Valor encontrado
IF dato = 0 THEN
WshShell.RegWrite "CADENA", 1, "REG_DWORD"
Msgbox("Opcion2")
END IF
END IF
Msgbox("FIN")
En el código he puesto varios mensajes para ir viendo que todas las variables almacenan los datos correctos... pero las funciones de escribir en el Registro de Windows no me funcionan
Alguien sabría en que estoy fallando¿?
Muchas gracias por adelantado.