Blade1981 10 Geschrieben 7. September 2005 Melden Geschrieben 7. September 2005 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! Zitieren
zahni 566 Geschrieben 7. September 2005 Melden Geschrieben 7. September 2005 Kann Dir nur mit http://www.kixtart.org helfen. Das heisst die Funktion "Addkey". Zum Schreiben eines Wertes: "Writevalue" -zahni Zitieren
cyrus the virus 10 Geschrieben 7. September 2005 Melden Geschrieben 7. September 2005 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 Zitieren
Blade1981 10 Geschrieben 7. September 2005 Autor Melden Geschrieben 7. September 2005 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!) Zitieren
cyrus the virus 10 Geschrieben 7. September 2005 Melden Geschrieben 7. September 2005 Hat zunächst nicht geklappt, war a kleiner Fehler drin ;-)Weiter oben schreibst du HKCU und weiter unten HCLM, aber angepasst funktioniert es nun! uuupppps, hab ich wohl etwas gepennt :D Gruß Cyrus Zitieren
Blade1981 10 Geschrieben 7. September 2005 Autor Melden Geschrieben 7. September 2005 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? Zitieren
Blade1981 10 Geschrieben 8. September 2005 Autor Melden Geschrieben 8. September 2005 Weiß denn niemand, wie man abfragen kann, ob ein Wert in einem Schlüssel der Registry schon vorhanden ist??? Oder muss ich jetzt wirklich nen neuen Thread aufmachen? Weil es ja eigentlich nicht wirklich zu meiner vorigen Frage passt... Zitieren
zahni 566 Geschrieben 8. September 2005 Melden Geschrieben 8. September 2005 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 Zitieren
Blade1981 10 Geschrieben 9. September 2005 Autor Melden Geschrieben 9. September 2005 Wenn ich das mit dem Kixtart recht versteh, dann müsste ich das auf jedem Rechner drauf haben, um auch bei jedem Rechner das überprüfen lassen zu können, oder? Ich komm mit dem Progrämmchen auch nicht wirklich klar. Bekomm das einfach nicht gebacken. Zitieren
Blade1981 10 Geschrieben 12. September 2005 Autor Melden Geschrieben 12. September 2005 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 :) Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.