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.
Código
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.