Hallo zusammen,
ich möchte innerhalb eines If-Zweiges den Inhalt einer Variablen
"auseinandernehmen". Leider funktioniert das nicht und ich verstehe
nicht, warum. Die Zielvariablen bleiben leer
Hier mal mein Script:
Die Messagebox kommt, mit theoretisch den einzelnen String-Anteilen bezüglich der Daten.
Tatsächlich bleiben die Stringvariablen aber leer und der Inhalt der Messagebox an der Stelle ohne Sinn. Hat jemand eine Idee, woran das liegen könnte? Bin über jede Hilfe dankbar, da ich nicht wirklich nachvollziehen kann, warum das so ist.
Nachtrag: Falls jemand testen möchte, kann er die angehängten Reg-Dateien importieren, NACHDEM er sich die Schreibrechte für den Registry-Zweig an dieser Stelle gegeben hat. Wichtig: Nur, wer weiß, was er da tut, sollte die Berechtigungen an seiner Registry für den Test anpassen und hinterher wieder rückgängig machen! Alternativ kann man auch die Windows-Updates installieren, aber noch nicht rebooten.
ich möchte innerhalb eines If-Zweiges den Inhalt einer Variablen
"auseinandernehmen". Leider funktioniert das nicht und ich verstehe
nicht, warum. Die Zielvariablen bleiben leer
Hier mal mein Script:
Visual Basic-Quellcode
- Option Explicit
- On Error Resume Next
- Dim objSysInfo, objShell, strRebootDate, strYear, strMonth, strDay, strHour, strMinute, messageBox
- Set objSysInfo = CreateObject("Microsoft.Update.SystemInfo")
- If (objSysInfo.RebootRequired) Then
- Set objShell = WScript.CreateObject("WScript.Shell")
- Set strRebootDate = objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired\ForcedRebootTime")
- If Err.Number = 0 Then
- Err.Clear
- Set messageBox = MsgBox("Der Computer benötigt einen Neustart, um die Installation von wichtigen Sicherheitsupdates " & _
- "abschließen zu können. Starten Sie Ihren Computer in den nächsten 2 Tagen neu." & vbCrLf & _
- "Andernfalls wird der Computer nach spätestens 5 Tagen automatisch neu gestartet!" & vbCrLf & vbCrLf &_
- "Falls Sie Hilfe benötigen, kontaktieren Sie bitte den Helpdesk:" & vbCrLf & _
- "Tel.: (+49)1234 56789 oder E-Mail: servicedesk@beispiel-url.com" & Chr(13) & "" & Chr(13) & _
- "Ihre IT" & vbCrLf & vbCrLf &_
- "Your computer needs to be rebooted in order to finish the installation of critical security updates." & vbCrLf & _
- "Please reboot your computer within the next 2 days, otherwise it will automatically be rebooted then." & vbCrLf & vbCrLf &_
- "If you need help, please contact us:" & vbCrLf & _
- "Phone: (+49)1234 56789 or Mail: servicedesk@beispiel-url.com" & Chr(13) & "" & Chr(13) & _
- "Your IT", vbOkOnly + vbCritical, "Achtung: Neustart notwendig! - Attention: Reboot required")
- Else
- Err.Clear
- Set strYear = DatePart("yyyy", strRebootDate)
- Set strMonth = DatePart("m", strRebootDate)
- Set strDay = DatePart("d", strRebootDate)
- Set strHour = DatePart("h", strRebootDate)
- Set strMinute = DatePart("n", strRebootDate)
- Set messageBox = MsgBox("Der Computer benötigt einen Neustart, um die Installation von wichtigen Sicherheitsupdates " & _
- "abschließen zu können. Starten Sie Ihren Computer vor dem " & strDay & "." & strMonth & "." & strYear & " um " & strHour & " Uhr neu." & vbCrLf & _
- "Andernfalls wird der Computer am " & strDay & "." & strMonth & "." & strYear & " um " & strHour & ":" & strMinute & " Uhr automatisch neu gestartet!" & vbCrLf & vbCrLf &_
- "Falls Sie Hilfe benötigen, kontaktieren Sie bitte den Helpdesk:" & vbCrLf & _
- "Tel.: (+49)1234 56789 oder E-Mail: servicedesk@beispiel-url.com" & Chr(13) & "" & Chr(13) & _
- "Ihre IT" & vbCrLf & vbCrLf &_
- "Your computer needs to be rebooted in order to finish the installation of critical security updates." & vbCrLf & _
- "Please reboot your computer before " & strRebootDate & ", otherwise it will automatically be rebooted then." & vbCrLf & vbCrLf &_
- "If you need help, please contact us:" & vbCrLf & _
- "Phone: (+49)1234 56789 or Mail: servicedesk@beispiel-url.com" & Chr(13) & "" & Chr(13) & _
- "Your IT", vbOkOnly + vbCritical, "Achtung: Neustart notwendig! - Attention: Reboot required")
- End If
- End If
Die Messagebox kommt, mit theoretisch den einzelnen String-Anteilen bezüglich der Daten.
Tatsächlich bleiben die Stringvariablen aber leer und der Inhalt der Messagebox an der Stelle ohne Sinn. Hat jemand eine Idee, woran das liegen könnte? Bin über jede Hilfe dankbar, da ich nicht wirklich nachvollziehen kann, warum das so ist.
Nachtrag: Falls jemand testen möchte, kann er die angehängten Reg-Dateien importieren, NACHDEM er sich die Schreibrechte für den Registry-Zweig an dieser Stelle gegeben hat. Wichtig: Nur, wer weiß, was er da tut, sollte die Berechtigungen an seiner Registry für den Test anpassen und hinterher wieder rückgängig machen! Alternativ kann man auch die Windows-Updates installieren, aber noch nicht rebooten.