Jump to content

per VBS einen Registry-Schlüssel mit Pfad erstellen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo!

 

Mal was ganz simples... Wenn man weiß, wie's geht ;-)

Ich muss in der Registry nen Schlüssel erstellen per VBS. Wie ich den Wert änder, das ist kein Problem, aber ich muss den Schlüssel und Pfad erstmal anlegen und daran scheitert's gerade. Denn händisch das Ganze, an jedem Rechner is bisschen viel Arbeit ;-)

Mit folgender Zeile setz ich den Wert zurück:

 

Regestrie.RegWrite "HKCU\Software\Intern\IP","","REG_SZ"

 

Wenn der Pfad und Schlüssel noch nicht existiert, dann läuft das Script nämlich nicht...

 

Danke schonmal!

Link zu diesem Kommentar

Hi Blade1981,

 

Const HKEY_CURRENT_USER =&H80000001

strComputer = "."

 

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _

strComputer & "\root\default:StdRegProv")

 

strKeyPath = "Software\Intern\IP"

oReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath

 

 

HKEY_CLASSES_ROOT (0x80000000)

HKEY_CURRENT_USER (0x80000001)

HKEY_LOCAL_MACHINE (0x80000002)

HKEY_USERS (0x80000003)

HKEY_CURRENT_CONFIG (0x80000005)

HKEY_DYN_DATA (0x80000006)

 

Viel Spaß damit, so geht´s :D

 

Gruß

Cyrus

Link zu diesem Kommentar

Hat zunächst nicht geklappt, war a kleiner Fehler drin ;-)

 

Weiter oben schreibst du HKCU und weiter unten HCLM, aber angepasst funktioniert es nun!

 

Also richtig lautet es dann so:

 

const HKEY_CURRENT_USER = &H80000001

strComputer = "."

Set objReg=GetObject( _

"winmgmts:{impersonationLevel=impersonate}!\\" & _

strComputer & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Intern\IP"

objReg.CreateKey HKEY_CURRENT_USER,strKeyPath

 

Dankeschön! :-)

 

Noch zur Ergänzung für spätere Interessenten:

Es spielt keine Rolle, ob in dem Script der Schlüssel ständig "neu erstellt" wird, da die Werte darin enthalten bleiben. Hab es ausprobiert...

Werte kann man mit .regwrite erstellen (weiter oben erwähnt!)

Link zu diesem Kommentar

Kannst mir aber dennoch vielleicht weiter helfen...

Und zwar hab ich noch ein Problem bei dem Script, wenn ein Wert noch nicht angelegt ist.

Weil wenn ich versuch ihn zu lesen, dann kommt die Fehlermeldung:

 

HKCU....IP wurde nicht zum Lesen geöffnet

 

Is ja klar, weil der Wert noch nicht vorhanden ist.

 

Okay, ich könnte die Werte ja vorher ohne Inhalt anlegen, aber wenn schon Werte vorhanden sind, dann würden ja die vorhandenen überschrieben werden.

Also müsst ich vorher prüfen, ob der Wert schon vorhanden ist, aber wie mach ich das?

Link zu diesem Kommentar

Wieder mit Kixtart ganz einfach:

 

KeyExist( )

 

Action: Checks for the existence of a registry subkey.

 

Syntax: KEYEXIST ("subkey")

 

Parameters: Subkey

Identifies the subkey you want to locate.

 

Remarks: KEYEXIST is a replacement to the EXISTKEY function found in previous versions of KiXtart. While functionally equivalent, the Return Codes are now inverted, resulting in behavior similar to the EXIST function.

 

Returns: 1 Subkey found

 

0 Subkey not found

 

 

 

See Also: AddKey( ), DelKey( ), DelTree( )

 

Example: $ReturnCode = KeyExist("HKEY_CURRENT_USER\Console\Configuration")

If $ReturnCode

? "Key exists...."

Endif

Link zu diesem Kommentar

Hab das nun anders geregelt. Per Fehlerbehandlung. On Error resume next heißt die Zauberzeile.

Sprich, ich lass die Registryeinträge auslesen. Wenn einer nicht vorhanden ist, taucht eigentlich ein Fehler auf, welcher durch die eingefügte Zeile übersprungen wird und das Script normal weiter macht. Die Variable ist halt dann leer.

 

Und schon funktioniert mein Script wieder :)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...