Registry waardes lezen met VBS

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • ToolkiT
  • Registratie: Februari 2004
  • Niet online

ToolkiT

brit-tweaker

Topicstarter
Ik probeer de waarde van een registry entry uit te lezen in een VBS script,

Ik heb deze artikelen gevonden
https://docs.microsoft.co...lue?view=netframework-4.8
https://docs.microsoft.co...value-from-a-registry-key

En kwam op deze code als proof of concept:
Dim readValue
readValue = CStr(Registry.GetValue( "HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip", "Path", "nothing found"))
WScript.echo "Search output: "& readValue


Echter ik krijg geen output.. zelfs niet 'nothing found'..

Mag je een gegeten paard in de bek kijken?

Alle reacties


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je een nieuw topic maakt staat er toch:
Mijn vraag
...

Relevante software en hardware die ik gebruik
...

Wat ik al gevonden of geprobeerd heb
...
Waarom laat je dat achterwege? Verder: heb je al gedebugged? Debuggen: Hoe doe ik dat?
Krijg je foutmeldingen? Zo ja: welke?

We hebben natuurlijk ook geen glazen bol....
Dat gaat over .Net...
Dat gaat over Visual Basic (de "grote broer" (if anything)) van VBScript...


Ik zou eens specifiek naar "VBS registry" ofzo zoeken: https://ss64.com/vb/regread.html

[ Voor 47% gewijzigd door RobIII op 06-02-2020 16:59 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • ToolkiT
  • Registratie: Februari 2004
  • Niet online

ToolkiT

brit-tweaker

Topicstarter
Wat ik geprobeerd heb is de code die ik postte..

Ik krijg geen output dat zeg ik toch al?
Of iets specifieker ik krijg: 'Search output: '
readValue is dus null..

Mag je een gegeten paard in de bek kijken?


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ToolkiT schreef op donderdag 6 februari 2020 @ 16:56:
Wat ik geprobeerd heb is de code die ik postte..
Wat je geprobeerd hebt om je probleem (met die code) op te lossen natuurlijk... ;)
ToolkiT schreef op donderdag 6 februari 2020 @ 16:56:
Ik krijg geen output dat zeg ik toch al?
Of iets specifieker ik krijg: 'Search output: '
readValue is dus null..
Ah, dus je krijgt wél output ;)
Dan hebben we het dus ook niet over VBS maar over Visual Basic :? Want de code die je post is geen VBS code... En zoals ik al zei: VBSVBVB.Net. Dus laten we eerst even zorgen dat we op dezelfde pagina zitten...

[ Voor 34% gewijzigd door RobIII op 06-02-2020 17:17 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • ToolkiT
  • Registratie: Februari 2004
  • Niet online

ToolkiT

brit-tweaker

Topicstarter
RobIII schreef op donderdag 6 februari 2020 @ 16:57:
Wat je geprobeerd hebt om je probleem (met die code) op te lossen natuurlijk... ;)
Ik heb een aantal varianten geprobeerd, maar ik twijvel of dit uberhaupt de juiste methode is.. of dat het te precies is qua syntax..
Zo heb ik "HKEY_LOCAL_MACHINE\\SOFTWARE\\7-Zip" en varianten geprobeerd..
met en zonder CStr etc..
Maar voor ik uren spendeer met debuggen wou ik eerst checken of ik wel op het goede pad zit..
Ja technisch gesproken heb je daar gelijk in.. maar de essentie van het process niet..
'hello world' lukt wel ja ;)
RobIII schreef op donderdag 6 februari 2020 @ 16:57:

Dan hebben we het dus ook niet over VBS maar over Visual Basic :? Want de code die je post is geen VBS code... En zoals ik al zei: VBSVBVB.Net. Dus laten we eerst even zorgen dat we op dezelfde pagina zitten...
Ah dat had ik niet door.. ik ben begonnen met een bestaand .vbs bestand.. het is volgens mij visual basic..

Mag je een gegeten paard in de bek kijken?


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ToolkiT schreef op donderdag 6 februari 2020 @ 18:19:
[...]ik ben begonnen met een bestaand .vbs bestand.. het is volgens mij visual basic..
Nee een .vbs bestand is dus VBS(cript)...
VB en VB.net word gecompiled, VBS(cript) is interpreted.
ToolkiT schreef op donderdag 6 februari 2020 @ 18:19:
[...]

Ja technisch gesproken heb je daar gelijk in.. maar de essentie van het process niet..
Technisch gesproken laat jij essentiele relevante informatie achterwege die ons ontzettend op het verkeerde spoor had kunnen zetten ;)

[ Voor 46% gewijzigd door RobIII op 06-02-2020 18:26 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • ToolkiT
  • Registratie: Februari 2004
  • Niet online

ToolkiT

brit-tweaker

Topicstarter
RobIII schreef op donderdag 6 februari 2020 @ 18:22:
[...]

Nee een .vbs bestand is dus VBS(cript)...
VB en VB.net word gecompiled, VBS(cript) is interpreted.
gotcha.. dan ga ik ff google met wat andere termen :)

ah mijn favorite site met database/linux/CMD syntax heeft ook een VBS sectie :)
https://ss64.com/vb/regread.html

[ Voor 17% gewijzigd door ToolkiT op 06-02-2020 18:29 ]

Mag je een gegeten paard in de bek kijken?


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je laat, vermoed ik, een stuk van het script achterwege? Laat me raden: érgens staat iets als: On Error Resume Next ? :X

If so: zet dat eens heel gauw uit... de code die je postte zou namelijk allerlei errors moeten geven... omdat het geen VBS code is. Maar die errors zie je nu niet door die "on errors resume next" waarmee VBS gewoon doorploetert en alles wat mis is lekker onder het tapijt veegt. Le-vens gevaarlijk (tenzij je heel goed weet wat je doet, maar daar lijkt 't niet op, NoFi ;) )
ToolkiT schreef op donderdag 6 februari 2020 @ 18:25:


ah mijn favorite site met database/linux/CMD syntax heeft ook een VBS sectie :)
https://ss64.com/vb/regread.html
8)7 Kijk eens welke exacte link ik postte in RobIII in "Registry waardes lezen met VBS"

[ Voor 91% gewijzigd door RobIII op 06-02-2020 18:33 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • ToolkiT
  • Registratie: Februari 2004
  • Niet online

ToolkiT

brit-tweaker

Topicstarter
Ah die reactie had ik gelezen voor je edit..
Maar bedankt voor de link :)

Mag je een gegeten paard in de bek kijken?


Acties:
  • 0 Henk 'm!

  • ToolkiT
  • Registratie: Februari 2004
  • Niet online

ToolkiT

brit-tweaker

Topicstarter
RobIII schreef op donderdag 6 februari 2020 @ 18:28:
Je laat, vermoed ik, een stuk van het script achterwege? Laat me raden: érgens staat iets als: On Error Resume Next ? :X

If so: zet dat eens heel gauw uit... de code die je postte zou namelijk allerlei errors moeten geven... omdat het geen VBS code is. Maar die errors zie je nu niet door die "on errors resume next" waarmee VBS gewoon doorploetert en alles wat mis is lekker onder het tapijt veegt. Le-vens gevaarlijk.
Dat stond er inderdaad..

Maar ik heb de essentie van de code werkend nu :)
Alleen nog wat robuster maken en wat extra features toevoegen.
VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Option Explicit

Dim WshShell
Dim fso
Dim USERPROFILE
Dim srcPath
Dim tgtPath
Dim filename
Dim infoResult
Dim regkey
Dim searchvalue
Dim replacevalue

rem On Error Resume Next


infoResult = "False"
If WScript.Arguments.Count <3 Then
WScript.echo "not enough parameters"
else
 regkey = WScript.Arguments.Item(0)   
 searchvalue = WScript.Arguments.Item(1)  
 replacevalue = WScript.Arguments.Item(2)  
End If

rem  WScript.echo "Registry key: "& regkey
rem   WScript.echo "Search value: "& searchvalue
rem   WScript.echo "Search value: "& replacevalue
 
rem Dim readValue As String 
Dim readValue 
Dim objShell

rem regkey = "HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip\Path"

Set objShell = WScript.CreateObject("WScript.Shell")
 
readvalue= objShell.RegRead(regkey) 


WScript.echo "Search output: "& readValue

Wscript.Echo infoResult



Bedankt voor de pointers.. mijn verwarring tussen VB en VBS waren het grootste probleem :)

[ Voor 0% gewijzigd door RobIII op 09-02-2020 00:42 . Reden: Quote => Code tags ]

Mag je een gegeten paard in de bek kijken?


Acties:
  • +1 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 03-10 11:19
Is het nog wel verstandig om nieuwe scripts te maken voor vbs terwijl dit in feite een deprecated techniek is (muv Office applicaties)? Sinds 2012 is Powershell toch wel DE manier om dit soort zaken te scripten.

Acties:
  • 0 Henk 'm!

  • ToolkiT
  • Registratie: Februari 2004
  • Niet online

ToolkiT

brit-tweaker

Topicstarter
Killah_Priest schreef op zaterdag 8 februari 2020 @ 12:24:
Is het nog wel verstandig om nieuwe scripts te maken voor vbs terwijl dit in feite een deprecated techniek is (muv Office applicaties)? Sinds 2012 is Powershell toch wel DE manier om dit soort zaken te scripten.
Is ook een optie, maar niet overal word powershell geaccepteerd.
En dit script is voor binnen een specific eco system, en ik had op die manier al een framework en wat voorbeelden.

Mag je een gegeten paard in de bek kijken?

Pagina: 1