Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung VB for Applications

Umboot VBS mit Menüauswahl

Mitglied: robcomboy

robcomboy (Level 1) - Jetzt verbinden

09.04.2007, aktualisiert 02:52 Uhr, 4361 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
VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen)
gelöst Frage von Luuke257Batch & Shell5 Kommentare

Hallo zusammen! Vorweg, ich bin absoluter neuling im Scripten, ich habe mir das alles nur so zusammengebastelt und versuche ...

Entwicklung
Chat via VBS
Frage von Questionmark93Entwicklung

Hey Community, wollte mal Fragen ob jmd auf die Schnelle ein VBS Skript hat das als "Chat" genutzt werden ...

VB for Applications
VBS - Vor- und Nachnamen auslesen
Frage von Ah3n0bar6usVB for Applications2 Kommentare

Ich könnte noch einmal (teuren) Rat gebracuhen. Ich versuche mir dem u.a. Script den kompletten Namen eines Nutzers vom ...

Batch & Shell
Variable aus VBS in Batch einlesen
gelöst Frage von racer1601Batch & Shell4 Kommentare

Hallo ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme. ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...