Supportnet / Forum / Skripte(PHP,ASP,Perl...)
registry
Frage
moin
hab das Problem, dass ich einen einzelnen Wert in der registry löschen sollte, mit den normalen REG-files kann ich nur den ganzen Schlüssel ersetzen. habe nun gehört, dass dies mit js oder vb möglich wäre. und jetz wäre meine Frage, wie ich nur den einzelnene wert löschen kann. bin übrigens ein völliger newbie..
hab mal ein wenig gesucht und "gebastelt":
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegDelete ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\@");
Schon jetzt vielen Dank
gruss
Antwort 1 von Massaraksch
Der Standardeintrag läßt sich IMHO nicht so einfach per REG-Files oder VB/J-Script löschen.
Einfach ist es jedoch mit dem Tool REG.EXE von M$. Ist z.B. enthalten in diversen Resource Kits, in den Support-Tools auf der Win2000-CD oder mal im I-Net suchen...
Der Befehl wäre dann:
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /ve /f
Schalter /f dient zur Unterdrückung der Bestätigungsabfrage
Massaraksch
Einfach ist es jedoch mit dem Tool REG.EXE von M$. Ist z.B. enthalten in diversen Resource Kits, in den Support-Tools auf der Win2000-CD oder mal im I-Net suchen...
Der Befehl wäre dann:
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /ve /f
Schalter /f dient zur Unterdrückung der Bestätigungsabfrage
Massaraksch
Antwort 2 von mothaFAQr
hi
hab jetz schon ne weile gesucht, aber nur infos über reg.exe gefunden. kann ich es vom server kopieren? oder kann ich es irgendwo downloaden?habe hier ca. 20 nt4 workstations, 1 nt4 server und 1 2003server(der hats drauf).die schlüssel müssen eben bei de nt4 ws's geändert werden.
thx&greez
hab jetz schon ne weile gesucht, aber nur infos über reg.exe gefunden. kann ich es vom server kopieren? oder kann ich es irgendwo downloaden?habe hier ca. 20 nt4 workstations, 1 nt4 server und 1 2003server(der hats drauf).die schlüssel müssen eben bei de nt4 ws's geändert werden.
thx&greez
Antwort 3 von Massaraksch
Kopier die REG.EXE des 2003-Servers in ein freigegebenes Netzverzeichnis (wo alle Zugriff haben).
Dann kannst du's in einem Script einfach so aufrufen:
\\Server\Freigabe\reg.exe delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /ve /f
Massaraksch
Dann kannst du's in einem Script einfach so aufrufen:
\\Server\Freigabe\reg.exe delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /ve /f
Massaraksch
Antwort 4 von Undertaker
Hi,
Schlüssel, Werte und deren Inhalt können auch mit *.reg Dateien gelöscht werden:
Gruß
Undertaker
Schlüssel, Werte und deren Inhalt können auch mit *.reg Dateien gelöscht werden:
- der Wert "(standard)" wird mit @ definiert:
@= - Ein Schlüssel wird wie folgt gelöscht:
[-HKEY_CURRENT_USER\a] - Ein Wert wird wie folgt gelöscht:
"test"=- - Der Inhalt eines Wertes wird je nach dessen Typ wie folgt gelöscht:
- Zeichenfolge (REG_SZ):
"test"="" - Zeichenfolge (REG_MULTI_SZ):
"test"=hex(7):00,00 - Zeichenfolge (REG_EXPAND_SZ):
"test"=hex(2):00,00 - Binärwert:
"test"=hex: - DWORD:
"test"=dword:00000000
- Zeichenfolge (REG_SZ):
Gruß
Undertaker
Antwort 5 von mothaFAQr
Danke vielmals!!
hätte sogar fast geklappt!!
hab nur ein Problem: reg.exe verlangt eine advapi32.dll, und diese kann ich leider nicht in's system32 verzeichnis kopieren, da die datei von windows genutzt wird.
hätte sogar fast geklappt!!
hab nur ein Problem: reg.exe verlangt eine advapi32.dll, und diese kann ich leider nicht in's system32 verzeichnis kopieren, da die datei von windows genutzt wird.
Antwort 6 von mothaFAQr
hi
@undertaker
dann müsste meine dritte Zeile demzufolge so aussehen:
@=-
oder sehe ich das falsch? muss den Wert des Standardschlüssels löschen.
gruss
@undertaker
dann müsste meine dritte Zeile demzufolge so aussehen:
@=-
oder sehe ich das falsch? muss den Wert des Standardschlüssels löschen.
gruss
Antwort 7 von Massaraksch
Grad nochmal probiert... Hast recht:
Die REG.EXE vom W2003-Server funktioniert nicht mit der advapi32 von NT.
Aber die REG.EXE von WinXP-Pro geht bei mir unter NT-SP6a ohne Probleme. Vielleicht findet sich in deiner Nähe ja so ein Maschinchen (oder wenigstens 'ne XP-CD, von der man sie holen kann).
@Undertaker
Das ist schon klar, aber zeig uns bitte, wie du mit einer REG-Datei den (Standard)-Eintrag entfernst.
Das geht nämlich nicht (auch nicht mit @).
Massaraksch
Die REG.EXE vom W2003-Server funktioniert nicht mit der advapi32 von NT.
Aber die REG.EXE von WinXP-Pro geht bei mir unter NT-SP6a ohne Probleme. Vielleicht findet sich in deiner Nähe ja so ein Maschinchen (oder wenigstens 'ne XP-CD, von der man sie holen kann).
@Undertaker
Das ist schon klar, aber zeig uns bitte, wie du mit einer REG-Datei den (Standard)-Eintrag entfernst.
Das geht nämlich nicht (auch nicht mit @).
Massaraksch
Antwort 8 von Undertaker
Hi,
@mothaFAQr
>> dann müsste meine dritte Zeile demzufolge so aussehen:
Nö. Die Angaben aus Antwort 4 sind für eine Registrierungsdatei (*.reg)...
So müßte die Datei aussehen:
@Massaraksch
Ich kann zwar nicht sagen, ob überhaupt eine Möglichkeit gibt, den (Standard)-Eintrag zu löschen, aber mit reg.exe geht es ebenso wenig, wie mit @=- in einer Registrierungsdatei.
Schaue in die Beschreibung des Syntax zu REG DELETE:
Ergo ist es egal, ob der Inhalt des (Standard)-Eintrags mit @=- oder @="" mittels Registrierungsdatei oder mit dem Parameter /ve von REG DELETE gelöscht wird.
Gruß
Undertaker
@mothaFAQr
>> dann müsste meine dritte Zeile demzufolge so aussehen:
Nö. Die Angaben aus Antwort 4 sind für eine Registrierungsdatei (*.reg)...
So müßte die Datei aussehen:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
@=-oder soWindows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
@=""@Massaraksch
Ich kann zwar nicht sagen, ob überhaupt eine Möglichkeit gibt, den (Standard)-Eintrag zu löschen, aber mit reg.exe geht es ebenso wenig, wie mit @=- in einer Registrierungsdatei.
Schaue in die Beschreibung des Syntax zu REG DELETE:
/ve delete the value of empty value name <no name>Also löscht auch reg.exe "nur" den Inhalt und nicht den Wert selbst. Ergo ist es egal, ob der Inhalt des (Standard)-Eintrags mit @=- oder @="" mittels Registrierungsdatei oder mit dem Parameter /ve von REG DELETE gelöscht wird.
Gruß
Undertaker
Antwort 9 von Massaraksch
@Undertaker
Kennst du das Sprichwort "Probieren geht über Studieren"?
Also teste es einfach und urteile dann. Die Befehlszeile hab ich ja angegeben.
Nach Ausführung erscheint beim (Standard)-Eintrag im entsprechenden Reg-Schlüssel: (Wert nicht gesetzt)
Genau das will mothaFAQr IMO erreichen. Und es geht eben nicht mit einer REG-Datei, jedoch sehr wohl mittels REG.EXE.
Massaraksch
Kennst du das Sprichwort "Probieren geht über Studieren"?
Also teste es einfach und urteile dann. Die Befehlszeile hab ich ja angegeben.
Nach Ausführung erscheint beim (Standard)-Eintrag im entsprechenden Reg-Schlüssel: (Wert nicht gesetzt)
Genau das will mothaFAQr IMO erreichen. Und es geht eben nicht mit einer REG-Datei, jedoch sehr wohl mittels REG.EXE.
Massaraksch
Antwort 10 von Undertaker
Hi,
@Massaraksch
Ups. Dann habe ich mich bezüglich @="" versehen. Aber es ist sehr wohl möglich mit @=- den Zustand "(Wert nicht gesetzt)" herzustellen.
>> Also teste es einfach und urteile dann.
Gebe ich mal so retour oder auch "dito"... ;-)
Gruß
Undertaker
@Massaraksch
Ups. Dann habe ich mich bezüglich @="" versehen. Aber es ist sehr wohl möglich mit @=- den Zustand "(Wert nicht gesetzt)" herzustellen.
>> Also teste es einfach und urteile dann.
Gebe ich mal so retour oder auch "dito"... ;-)
Gruß
Undertaker
Antwort 11 von Massaraksch
@Undertaker
Oh Mann! Windows ist wieder mal echt anstrengend...
Muß dir nun auch (nach verschiedenen Versuchen, Kopfschütteln, Strinrunzeln und Aha!-Effekten ;-) recht geben.
Das Entfernen des Standard-Eintrags mittels REG-Datei (also mit @=-) geht... aber nur unter WinXP (evtl. auch Win2000?) aber nicht unter WinNT. Grrrr :-(
Zum Glück gehts mit der REG.EXE auch bei NT.
Also hat wie so oft jeder irgendwie recht und Windows ist doof ;-)
Massaraksch
Oh Mann! Windows ist wieder mal echt anstrengend...
Muß dir nun auch (nach verschiedenen Versuchen, Kopfschütteln, Strinrunzeln und Aha!-Effekten ;-) recht geben.
Das Entfernen des Standard-Eintrags mittels REG-Datei (also mit @=-) geht... aber nur unter WinXP (evtl. auch Win2000?) aber nicht unter WinNT. Grrrr :-(
Zum Glück gehts mit der REG.EXE auch bei NT.
Also hat wie so oft jeder irgendwie recht und Windows ist doof ;-)
Massaraksch
Antwort 12 von Undertaker
Hi,
@Massaraksch
>> Also hat wie so oft jeder irgendwie recht und Windows ist doof ;-)
Full ACK
@=- habe ich unter Windows 2000 getestet. 95, 98 und ME habe ich leider gerade verfügbar.
@all
Und wer die reg.exe (V2.0.0.0) auf Windows 2000 vermisst, kann die Support-Tools von der CD installieren (SUPPORT\TOOLS\SETUP.EXE)
Gruß
Undertaker
@Massaraksch
>> Also hat wie so oft jeder irgendwie recht und Windows ist doof ;-)
Full ACK
@=- habe ich unter Windows 2000 getestet. 95, 98 und ME habe ich leider gerade verfügbar.
@all
Und wer die reg.exe (V2.0.0.0) auf Windows 2000 vermisst, kann die Support-Tools von der CD installieren (SUPPORT\TOOLS\SETUP.EXE)
Gruß
Undertaker
Antwort 13 von Undertaker
Korrektur:
alt: 95, 98 und ME habe ich leider gerade verfügbar.
neu: 95, 98 und ME habe ich leider gerade nicht verfügbar.
Gruß
Undertaker
alt: 95, 98 und ME habe ich leider gerade verfügbar.
neu: 95, 98 und ME habe ich leider gerade nicht verfügbar.
Gruß
Undertaker
Antwort 14 von mothaFAQr
Hallo!!
So, nun hat's endlich geklappt, hab mir ne reg.exe von einem XP-Home laptop kopiert. mit der hats auch problemlos funktioniert.
wegen dem @=- kann ich eigentlich nur sagen, dass es rein theoretisch schon funktionieren würde, das Problem ist einfach, dass das nur möglich ist, wenn man den ganzen Schlüssel neu schreibt und nicht, wenn man nur einen einzelnen löschen möchte.
Vielen Dank nochmals für eure Hilfe!!
greez
So, nun hat's endlich geklappt, hab mir ne reg.exe von einem XP-Home laptop kopiert. mit der hats auch problemlos funktioniert.
wegen dem @=- kann ich eigentlich nur sagen, dass es rein theoretisch schon funktionieren würde, das Problem ist einfach, dass das nur möglich ist, wenn man den ganzen Schlüssel neu schreibt und nicht, wenn man nur einen einzelnen löschen möchte.
Vielen Dank nochmals für eure Hilfe!!
greez

