Avatar billede butcher Nybegynder
18. oktober 2004 - 11:15 Der er 4 kommentarer og
1 løsning

Ændre Binary Value key i regdb.

jeg har en Binary Value key som hedder DaylightStart, hvis man eksportere dens indhold til en .reg fil, ser den sådan her ud:
DaylightStart"=hex:00,00,03,00,05,00,02,00,00,00,00,00,00,00,00,00

Jeg kunne godt tænke mig at ændre den værdi til en anden, f.eks. 00,00,0a,00,05,00,03,00,00,00,00,00,00,00,00,00

Det nytter ikke at bruge dword eller string, da det som sagt er en "Binary Value"

Så hvordan ændrer man den gamle værdi til den nye værdi eller kan man slette hele den gamle key og indsætte en ny hvor den nye værdi er i?

Den er så vidt jeg kan se ret tricky, så der rives lidt mange point efter dem som har nogle gode svar :)

Og det SKAL være via et vbscript, da det her script skal køres før en bruger logger sig på en maskine.
Avatar billede tofte Juniormester
18. oktober 2004 - 15:37 #1
Følgende script ændrer eller opretter en binær værdi i registreringsdb.

Håber det er det du skal bruge. Du kan bare forlænge uBinary så det kommer til at passe med det du gerne vil indsætte.

Const HKEY_CURRENT_USER = &H80000001
const HKEY_LOCAL_MACHINE = &H80000002

Set objRegistry = GetObject("Winmgmts:root\default:StdRegProv")

strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
strValueName = "MyBinaryNamedValue"
uBinary = Array(3,2,3,6,6,6,7,8)

Return = objRegistry.SetBinaryValue(HKEY_LOCAL_MACHINE,strKeyPath, strValueName,uBinary)
If (Return = 0) And (Err.Number = 0) Then
    msgbox "Binary value added successfully"
Else
    msgbox "err"
End If
Avatar billede butcher Nybegynder
19. oktober 2004 - 09:44 #2
Jeg kaster mig frådende over det og kigger på det med det samme :)
Avatar billede butcher Nybegynder
19. oktober 2004 - 10:15 #3
Det ser faktisk ud til at virke, har dog et lille sidste problem, som sikkert et simpelt, men nu er det også tideligt på dagen :)

Mit vbscript ser sådan her ud nu:

"
'Set TimeZone to GMT(+1)
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."

Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")

strKeyPath = "System\CurrentControlSet\Control\TimeZoneInformation"
   
strEntryName = "ActiveTimeBias"
dwValue = 4294967176
objReg.SetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, dwValue

strEntryName = "Bias"
dwValue = 4294967236
objReg.SetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, dwValue

strEntryName = "DaylightBias"
dwValue = 4294967236
objReg.SetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, dwValue

strEntryName = "DaylightName"
strValue = "Romance Daylight Time"
objReg.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, strValue

strEntryName = "StandardBias"
dwValue = 0
objReg.SetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, dwValue

strEntryName = "StandardName"
strValue = "Romance Daylight Time"
objReg.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, strValue

set objReg = nothing

Set objRegistry = GetObject("Winmgmts:root\default:StdRegProv")
strKeyPath = "System\CurrentControlSet\Control\TimeZoneInformation"
strValueName = "DaylightStart"
uBinary = Array(00,00,03,00,05,00,02,00,00,00,00,00,00,00,00,00)
Return = objRegistry.SetBinaryValue(HKEY_LOCAL_MACHINE,strKeyPath, strValueName,uBinary)

set objRegistry = nothing
"

Og den ændrer også fint DaylightStart osv og det andet, men jeg vil gerne have den til at ændre endnu en binær værdi: "StandardStart"=hex:00,00,0a,00,05,00,03,00,00,00,00,00,00,00,00,00


Har prøvet at smide følgende på:

Set objRegistry = GetObject("Winmgmts:root\default:StdRegProv")
strKeyPath = "System\CurrentControlSet\Control\TimeZoneInformation"
strValueName = "StandardStart"
uBinary = Array(00,00,0a,00,05,00,03,00,00,00,00,00,00,00,00,00)
Return = objRegistry.SetBinaryValue(HKEY_LOCAL_MACHINE,strKeyPath, strValueName,uBinary)

set objRegistry = nothing


Men det går ikke og så siger den at den forventer et ) i uBinary linien, så prøvede jeg at smide den i sit egen script, og får samme fejl og fejlen opstår lige før 0a ... Er der noget specielt der??
Avatar billede butcher Nybegynder
19. oktober 2004 - 14:56 #4
Nå det bliver alligevel ikke nødvendigt, fandt på en hel anden løsningsmetode til mit problem, men tak for hjælpen :)
Avatar billede tofte Juniormester
19. oktober 2004 - 15:43 #5
Jeg takker for points, og undlader at kigge på dit script, men skriv endelig hvis der bliver noget.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester