meister-petz
Goto Top

VBScript beim Start von XP

Hallo zusammen,

Hab mal wieder ein Problem bei dem ich auf eure Unterstützung hoffe.
Ich hab mich mal an VBS Skripte gewagt und bin deshalb ein Frischling auf dem Gebiet.
Der Computername sollte per vbs inputbox unbenannt werden.
Der Teil war kein Problem da hier im Forum schon mal danach gefragt wurde.
Also hab ich mir den Code beschnappt und ihn ein wenig verändert.
Bei mir sollte das Skript als Shell Start von XP ausgeführt werden.
Klappt auch wunderbar mit der Hilfe von cscript.exe.
Eintrag unter: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Shell
cscript.exe c:\test.vbs

Nun aber mein Problem das Script soll nachdem der Computername gesetzt wurde den Eintrag in der Registry wieder ändern.
z.B. wieder in explorer.exe
Hab das meine ich auch richtig gemacht.
Es funktioniert zumindest alles wenn XP "normal" mit der explorer.exe gestartet ist.
Es funktioniert aber nicht wenn in der Shell das VBScript eingetragen ist.

Option Explicit 
Dim ws, t, p2, p3, p4, p5, n, g, j, h, f, k, cn, cg, cj 
Set ws = WScript.CreateObject("WScript.Shell")   
Dim itemtype 
p2 = "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName\"   
p3 = "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\"   
p4 = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\"   
p5 = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\"   
j = ws.RegRead(p2 & "ComputerName")   
h = ws.RegRead(p3 & "NV Hostname")   
f = ws.RegRead(p4 & "ComputerName")   
k = ws.RegRead(p5 & "NV Hostname")   
t = "Change Utility"   

  cj = InputBox("Geben Sie den neuen Computernamen an und klicken auf OK." & vblf & "!! ACHTUNG !! Nach dem klicken auf OK wird der Computer SOFORT neugestartet!", t, j)   
 
If cj <> "" Then   
  ws.RegWrite p2 & "ComputerName", cj   
  ws.RegWrite p3 & "NV Hostname", cj   
  ws.RegWrite p4 & "ComputerName", cj   
  ws.RegWrite p5 & "NV Hostname", cj   
  ws.Run "regedit /s test.reg"  
  'Ws.Run "shutdown.exe -r -f -t 0 -c ""Windows XP wird neu gestartet""", 1, False   
End If 
(Den Neustart hab ich mal zu testzwecken abgeklemmt)

Ich hoffe Ihr könnt mir helfen.
Jeder Vorschlag ist Willkommen.

Content-Key: 164831

Url: https://administrator.de/contentid/164831

Printed on: April 25, 2024 at 01:04 o'clock

Member: cMaster
cMaster Apr 18, 2011 at 16:44:31 (UTC)
Goto Top
Hi,

und wenn du dann einfach noch vor dem Shutdown ein
  • ws.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell", "explorer.exe"
ausführst, dann trägt er da wieder die explorer.exe ein, und die startet dann wieder die, beim nächsten Start.

Viele Grüße
Member: Biber
Biber Apr 18, 2011 at 16:46:55 (UTC)
Goto Top
Moin Meister-Petz,

kann es sein, dass die woher-auch-immer gefallene Zeile 22 ( ws.Run "regedit /s test.reg" ) dir die ganze Mühe immer zunichte & zuneffe macht?

Überschreib diese Zeile doch mal mit Hex(20) und/oder setz ein Apostroph davor.

Grüße
Biber
Mitglied: 99045
99045 Apr 18, 2011 at 16:50:04 (UTC)
Goto Top
Zitat von @Meister-Petz:
Es funktioniert aber nicht wenn in der Shell das VBScript eingetragen ist.

Hi,

kann ja auch nicht funktionieren, denn weder cscript noch dein VBS-File ist eine Shell.
Oder meinst du, dass CSCRIPT Regedit starten kann?

Gruß
Mitglied: 60730
60730 Apr 18, 2011 at 18:12:21 (UTC)
Goto Top
moin,

so gern ich in der Registry rumfummel, aber da hört der Spass auf und der Ernst fängt an.
Außerdem sind einzeiler einfach schöner face-wink

netdom renamecomputer %computername% /newname:neuername /userD:meinedomäne\administrator /passwordd:* /usero:administrator /passwordo:* /force /reboot:60

Gruß
Member: Meister-Petz
Meister-Petz Apr 20, 2011 at 16:22:53 (UTC)
Goto Top
Hallo Leute,

danke für eure Antworten.
Hab es mit dem Tipp von cMaster hinbekommen.
Zu Biber: genau diese Zeile hätte ja die Registry umgeschrieben was ja Sinn der Sache war. (test.reg ist der exportierte Registry-Eintrag)
Zu Kaputtnick: es kann alles gestartet werden, Win ist ja gestartet nur der Desktop und die Taskleiste sind nicht da du siehst einfach nur das Hintergrundbild.
Zu Timo: Hatte noch keine Zeit zu testen aber wenn das funst wäre das natürlich genial.

Gruß