Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Davigotchi

#11
Buenas tardes:

Si señor!!! Cuanta razón... ya funciona, fallo mio xD
Muchas gracias :) .
Pero ahora quiero después de ese IF montar otro pero no se en que fallo ahora :( ...

Código (vb) [Seleccionar]

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)

DIM CADENA2
CADENA2 = objshell.expandenvironmentstrings("HKEY_USERS\"&SID&"\Control Panel\International\User Profile\HttpAcceptLanguageOptOut")

Msgbox objshell.expandenvironmentstrings(CADENA2)

On Error Resume Next

Set oShell = WScript.CreateObject("WScript.Shell")
dato = oShell.RegRead(CADENA)

Msgbox objshell.expandenvironmentstrings(dato)

DIM WshShell
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

DIM WshShell2
Set oShell = WScript.CreateObject("WScript.Shell")
dato2 = oShell.RegRead(CADENA)

Msgbox objshell.expandenvironmentstrings(dato2)

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

IF Err.Number <> 0 THEN  'Ha ocurrido un error
  IF Err.Number = -2147024894 THEN
    WshShell2.RegWrite CADENA2, 1, "REG_DWORD"
MsgBox ("Opcion 1_2")
  END IF
WScript.Quit
ELSE                     'Valor encontrado
  IF dato2 = 0 THEN   
  WshShell2.RegWrite CADENA2, 1, "REG_DWORD"
  Msgbox("Opcion2_2")
  END IF
END IF


Msgbox("FIN")


Derspues de este comando:
Msgbox objshell.expandenvironmentstrings(dato2)
Me muestra el valor correspondiente pero no se ejecuta nada más... pasa directamente al mensaje:
Msgbox("FIN")

Alguien sabe que se me está pasando¿?

Gracias de nuevo. ;)
#12
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.

Código (vb) [Seleccionar]

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.
#13
Buenas tardes:

Muchiiiisimas gracias.

A parte de funcionar perfectamente, ya lo he adaptado  a lo que necesito...

Perfectamente explicado y entendido.

Muchas gracias de nuevo. Un crack si señor. :)
#14
Buenas tardes:

Muchísimas gracias. Sois unos cracks.

Tmb estuve con vbs y conseguí lo siguiente:

Dim WshShell, bKey
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim valor
Set objshell = createobject("wscript.shell")
Valor = objshell.regread("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2\1004")
If  valor <> 0 then
   WshShell. RegWrite"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2\1004", 0, "REG_DWORD"
End if

Pero ahora si la clave a comparar no existe me da un error y yo querría que si el VALOR es Distinto de CERO o NO EXISTE... se ejecute... Alguna idea¿?¿?

Gracias de nuevooooo
#15
Buenas tardes de nuevo:

Estoy mirando con vbscript... a ver que tal se me dá, jajaja

Creo que con el comando "RegRead"...
#16
Buenas tardes a todos:

Quería hacer un batch sencillo en el cual se pueda comparar un valor concreto de una cadena del registro de windows... estoy mirando REG QUERY y REG COMPARE y me estoy volviendo loco :(

Quería exactamente saber el valor de este registro (Se consultarlo de esta manera):

REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1004"

Y me devuelve:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2
   1004    REG_DWORD    0x3

- Es decir que el valor de "1004" es 0x3

Entonces quería hacer un batch en el cual si el valor de "1004" es diferente a "0x3" pues por ejemplo ejecutar un "REG IMPORT C:\IE11.reg" (Es decir que cuando el valor "1004" es diferente a "0x3" pues importo toda la configuración que tengo como por defecto de un archivo .REG)...

Espero haberme explicado bien.
Alguien me podría ayudar¿?

Muchisimas gracias por adelantado.