Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Umboot VBS mit Menüauswahl

Frage Entwicklung VB for Applications

Mitglied: robcomboy

robcomboy (Level 1) - Jetzt verbinden

09.04.2007, aktualisiert 02:52 Uhr, 4340 Aufrufe, 4 Kommentare

Mit Menüauswahl vor dem Booten

Hallo, ich hab hier ein VBS Script, mit dem ich in der Lage bin aus Wndows heraus meine entsprechenden
Betriebssysteme zu booten.
Kleines Manko an diesem VBS ist, dass ich nachdem ich die Auswahl für das zu bootende Os getroffen habe
nach dem Neustart keine Möglichkeit mehr habe das zu bootende Os auszuwählen, für den Fall dass ich mich kurzfristig umentscheide.
Lässt sich das hier irgendwie realisieren?
Am Besten noch mit einem Timeout von 15 Sekunden.

Hier der Code


Set Myshell = WScript.CreateObject("WScript.Shell")
Set Myfolder = CreateObject ("Scripting.FileSystemObject")
On Error Resume Next

'Die folgenden drei Werte können angepasst werden

'
Bootini = "C:\Boot.INI"
Bootbak = "C:\Boot.ORI"
TimeOut = 15
'


If (MyFolder.FileExists(Bootbak)) Then
MyFolder.CopyFile Bootbak, Bootini, True
End If

Set Bootread = Myfolder.OpenTextFile(Bootini, 1, false)

Do While Bootread.AtEndOfStream <> True
Zeilenzahl=Zeilenzahl+1
Bootread.SkipLine
Loop
Bootread.Close

ReDim Os(Zeilenzahl)
Set Bootread = Myfolder.OpenTextFile(Bootini, 1, false)
Do Until Bootread.AtEndOfStream = True
n=n+1
Os(n) = Bootread.ReadLine
Loop
Bootread.Close

For n=1 to Zeilenzahl
If Os(n) = "[operating systems]" Then
OsZeile = n+1
ElseIf InStr(1, Os(n), "timeout=", 1) = 1 Then
ToutZeile = n
ElseIf InStr(1, Os(n), "default=", 1) = 1 Then
DefZeile = n
End If
Diff = DefZeile-ToutZeile
Next

ReDim ClearName(Zeilenzahl)
ReDim SysName(Zeilenzahl)

For n = OsZeile to Zeilenzahl
Namepos = InStr(Os(n), "=")
SysName(n) = left(Os(n), Namepos - 1)
ClearName(n) = Mid(Os(n), Namepos + 2)
AnfPos = InStr(1, ClearName(n), Chr(34), 1)
ClearName(n) = Mid(ClearName(n), 1, Anfpos-1)
Liste = Liste +vbcr +vbcr & n-OsZeile+1 & ". " & ClearName(n)
Next

Umboot = InputBox("Welches Betriebsystem soll gestartet werden? Geben Sie bitte die entsprechnde Zahl ein." +vbcr+vbcr & "0. Nur herunterfahren" & Liste , "Umboot-Menü für Windows 98/98SE/ME/2000/XP", 0)

MyFolder.CopyFile Bootini, Bootbak, True

If Umboot = "" Then
Wscript.quit
ElseIf Umboot = 0 Then
a = MsgBox("Wollen Sie den Rechner wirklich herunterfahren?", 4, "herunterfahren?")
If a = 7 Then wscript.quit
BsName = MyShell.Regread("HKLM\Software\Microsoft\Windows\CurrentVersion\ProductName")
If BsName = "Microsoft Windows 98" or BsName = "Microsoft Windows ME" Then
MyShell.Run("rundll32.exe shell32.dll,SHExitWindowsEx 1")
Else
Set Bsse = GetObject("winmgmts:{(Shutdown) }./root/cimv2"). _
ExecQuery("select * from Win32_OperatingSystem where Primary=true")
For Each Bs In Bsse
Bs.shutdown
Next
End If
wscript.quit
End If
m = Umboot + OsZeile - 1
a = MsgBox("Wollen Sie wirklich das Aktuelle OS beenden und " & ClearName(m) & " starten?", 4, "Umbooten?")
If a = 7 Then wscript.quit
Set Bootwrite = Myfolder.OpenTextFile(Bootini, 2, false)
If Diff > 0 Then
First = ToutZeile
Sec = DefZeile
ElseIf Diff < 0 Then
First = DefZeile
Sec = ToutZeile
End If

For n=1 to First-1
BootWrite.WriteLine Os(n)
Next
BootWrite.Writeline "timeout=" & TimeOut
For n= First+1 to Sec-1
BootWrite.Writeline Os(n)
Next
Bootwrite.Writeline "default=" & SysName(m)
For n = Sec+1 to Zeilenzahl
Bootwrite.Writeline Os(n)
Next

BsName = MyShell.Regread("HKLM\Software\Microsoft\Windows\CurrentVersion\ProductName")
If BsName = "Microsoft Windows 98" or BsName = "Microsoft Windows ME" Then
MyShell.Run("rundll32.exe shell32.dll,SHExitWindowsEx 2")
Else
Set Bsse = GetObject("winmgmts:{(Shutdown)}
./root/cimv2"). _
ExecQuery("select * from Win32_OperatingSystem where Primary=true")
For Each Bs In Bsse
Bs.reboot
Next
End if




Hier habe ich nur da Problem, dass das Menü nicht angezeigt wird und sich der PC
nicht die Eingabe merkt, die ich unter Windows gemacht habe.
Lässt sich das irgendwie ändern?


Danke schon mal für Eure Hilfe.

Grüße, robcomboy
Mitglied: 46503
09.04.2007 um 02:29 Uhr
Kleines Manko an diesem VBS ist, dass ich nachdem ich die Auswahl für das zu
bootende Os getroffen habe nach dem Neustart keine Möglichkeit
mehr habe das zu bootende Os auszuwählen, für den Fall dass ich
mich kurzfristig umentscheide.

STRG-Taste festhalten.

Ob shutdown oder rundll benutzt werden muss zum Neustart, kann man auch über das Environment feststellen: Bei Win9x ist die Environmentvariable OS nicht vorhanden.

Warum eigentlich so kompliziert? 5 x boot.ini erstellt, je 1 für das entsprechende OS mit veränderter Zeile default= und per Batch umkopieren auf C:\Boot.ini.
Bitte warten ..
Mitglied: robcomboy
09.04.2007 um 02:33 Uhr
und per Batch umkopieren auf
C:\Boot.ini.

Wie lässt sich sowas denn realisieren? Hab nicht wirklich Ahnung vom
Batch Programmieren.
Bitte warten ..
Mitglied: 46503
09.04.2007 um 02:45 Uhr
Man listet die möglichen Systeme per echo auf und erstellt mit choice (choice /?) eine Abfrage, welches System gestartet werden soll.

Dann kopiert man die entsprechende dazu passende Boot.xxx mit copy nach c:\boot.ini und ruft shutdown bzw. rundll32 ..... auf, je nachdem, ob die Variable OS vorhanden ist.

Informationen zu Batchdateien und Befehlszeilenreferenz findet man in der Hilfe zu Windows XP.
Bitte warten ..
Mitglied: robcomboy
09.04.2007 um 02:52 Uhr
Ok, danke ich mach mich da ma dran.
Grüße, robcomboy
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Cpl Dateien per Batch oder VBS öffnen (1)

Frage von Angelo131095 zum Thema Batch & Shell ...

VB for Applications
gelöst VBS Ordner erstellen - wenn nicht vorhanden! (1)

Frage von freshman2017 zum Thema VB for Applications ...

VB for Applications
gelöst VBS Datei Auswahl Dialog (5)

Frage von 133202 zum Thema VB for Applications ...

VB for Applications
gelöst VBS Suchen und Ersetzen bei UTF8 XML Dateien funktioniert nicht (7)

Frage von Nexxudus zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(40)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (10)

Frage von keine-ahnung zum Thema Exchange Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (8)

Frage von ahaeuser zum Thema Windows Server ...