VBS Scripte unter Windows 8 (Wscript) ausführen

GeReg

Ensign
Registriert
Jan. 2004
Beiträge
183
[gelöst] VBS Scripte unter Windows 8.1 (Wscript) ausführen

Hallo,
Kurze Vorgeschichte:
Ich habe nun auch den Schritt zum Windows 8 hinter mir. Einmal von Windows 7 Ultimate (32bit) mit vollständiger Daten und App Übernahme und einmal (Notebook) von Windows 7 HomePremium. Dort hat aber die daten und App Übernahme nicht geklappt. Fast am Ende des Update kam kurz die Info, dass etwas nicht geklappt hat und der ganze Rechner wurde wieder auf den alten Stand gebracht. Bei dem Update ohne Übernahme (Einstellung:nichts) ging es aber einwandfrei. Vielleicht war irgendein Programm, was das Übernehmen verhindert hat. Der Assistent hatte aber vorher kein Problem von Apps angezeigt bzw. die betroffenen Programme hatte ich vorher deinstalliert.

Nun komme ich zu dem Anliegen des Themas:
Auf meinen beiden Win 7 Rechnern hatte ich eine kleine Script-Anweisung im Autostart, die mir immer 5 Tage vorher schon einen Geburtstag angekündigt hatte. Der wurde dann jeden Tag wie beim Countdown herunter gezählt. Seit der Zeit habe ich eigentlich nie mehr ein Geburtstag vergessen. Leider läuft die Anwendung so nicht mehr. Jetzt suche ich jemanden, der sich in VBS Dateien auskennt und mir bei der Umstellung auf Win8 behilflich sein kann. Denn grundsätzlich laufen ja VBS Scripte auch auf Win8.

Hier einmal der Inhalt der BIRTHDAY.VBS Datei:
Dim objFileSystem
Dim objFile
Dim objTextStream
Dim szConfigFile
Dim szBirthday, szName, szThisYear, szNextYear, szComparisonDate
Dim szMessage
Dim iTime
Dim iDifference

' Standardwerte für einige Variablen
szConfigFile = "C:\DATEN\BIRTHDAY.INI"
iTime = 5

szMessage = ""
szThisYear = CStr(Year(date))
szNextYear = CStr(Year(date)+1)

Set objFileSystem = CreateObject("Scripting.FileSystemObject")

' Config-Datei ermitteln, ...
If objFileSystem.FileExists(szConfigFile) Then

' ... öffnen...
Set objFile = objFileSystem.OpenTextFile(szConfigFile)

' ... und zeilenweise abarbeiten
Do until objFile.atEndOfStream

' Geburtstag und Name des Geburtstagskindes lesen
szBirthday = objFile.read(6)
szName = objFile.readLine

' Wieviele Tage sind es noch bis zum nächsten Geburtstag?
szComparisonDate = szBirthday & szThisYear
iDifference = DateDiff("y", date, DateValue(szComparisonDate))

' Falls der nächste Geburtstag allerdings erst im nächsten Jahr liegt
if (CInt(iDifference) < 0) then
szComparisonDate = szBirthday & szNextYear
iDifference = DateDiff("y", date, DateValue(szComparisonDate))
end if

' Wenn die Anzahl der Tage innerhalb der Frist liegt
if (CInt(iDifference) <= iTime) then
szMessage = szMessage & szName & " am " & szComparisonDate & " - noch " & iDifference & " Tage" & Chr(10)
end if

Loop
objFile.close

else
MsgBox "Die Config-Datei " & szConfigFile & " ist nicht vorhanden!", vbCritical, "Fehler"
end if

' Falls vorhaben, Liste der nächsten Geburtstage ausgeben
If szMessage<>"" Then
MsgBox szMessage, vbInformation, "Die nächsten Geburtstage"
End If
Dazu auch die notwendige BIRTHDAY.INI Datei
27.11. Kerstin,
27.11. Dieter,
28.11. Christa,
29.11. Claudia,
29.11. Knut,
30.11. Hans Werner,
30.11. Elisabeth,
01.12. Marina,
02.12. Gela,
03.12. Inge
Zusätzlich noch eine Datei mit dem Namen BIRTHDAY.WSH. Für diese Datei habe ich einen Link erstellt und in den Autostart kopiert. Ich hatte die Dateien in dem Ordner C:\Daten abgelegt.
Die Datei hatte folgenden Inhalt:
[ScriptFile]
Path=C:\Daten\birthday.vbs
[Options]
Timeout=0
DisplayLogo=0
Die Dateien befinden sich in dem Ordner C:\Daten.
Ich habe in der DEMO-INI Termine eingegeben von den einige nach dem Aufruf der Datei (Link von BIRTHDAY.WSH) in einem PopUp Fenster auf dem Desktop dargestellt werden. Geordnet nach der Reihenfolge der Geburtstage. Alle Termine im Zukunftsfenster von 5 Tagen wurden angezeigt.

Das kleine VBS Programm wurde nur mit den Veränderungen in der INI Datei gefüttert. Jede Zeile muss mit einem Komma abgeschlossen werden Nur die letzte Zeile bleibt ohne Komma.

Ich habe diese Anfrage auch schon in einem anderen Forum gestellt, aber dort leider ohne jegliche Resonanz. Daher hier noch einmal den Wunsch nach einer Lösung, da dieses Forum deutlich größer und bekannter ist.

Jetzt die abschließende Frage:

Wer kann mir dabei helfen, die Script-Datei unter Windows 8 zum Laufen zu bewegen :)
 
Zuletzt bearbeitet:
Hallo,

es passiert überhaupt nichts. Es hängt sich nichts auf (mit TaskManager überprüft) oder sonst dergleichen. Wenn ich aber irgend eine andere VBS- Demo Datei anklicke läuft diese einwandfrei.

Ich habe einmal diese Verzögerung (VBS Datei) ausprobiert. Die läuft einwandfrei und startet das Programm Texpad nach 6 Sekunden. Also Script Dateien werden ausgeführt.

Verzögerung.vbs
Option Explicit

Dim objShell
Dim intVerzoegerung

' Zuerst warten
intVerzoegerung = 6000 ' in Millisekunden
WScript.Sleep intVerzoegerung

' Jetzt die Programme starten
Set objShell = Wscript.CreateObject("Wscript.Shell")
objShell.Exec ("C:\Program Files\TextPad 6\Textpad.exe")
 
Zuletzt bearbeitet:
Generell, nimm statt irgendeines Autostarts besser die Aufgabenplanung von Windows 8.

Noch einmal die Nachfrage: Dein Skript läuft nicht und Du willst es umgeschrieben haben?

Denn unter Win8 64bit läuft die vbs ohne Probleme. Ausgabe der Geburtstagsdaten exakt wie gewollt. Gerade selbst durch copy paste geprüft.
Unter einem Administratorkonto wohlgemerkt. Ein User sollte dies auch können, solange der User entsprechende Rechte hat.

Was mich vermuten läßt: Hast du das vbs aus dem Windows 7 übernommen?
Sind die Rechte möglicherweise dadurch falsch gesetzt. Erstell die Dateien neu.
 
änder mal die letzten Zeilen in:

Code:
' Falls vorhaben, Liste der nächsten Geburtstage ausgeben
If szMessage<>"" Then
wscript.echo szMessage
End If

und starte das skript nicht mit Doppelklick sondern öffne eine Eingabeaufforderung (cmd) und gib folgendes ein:

cscript c:\Daten\Birthday.vbs

gibt er dir die Daten aus?
 
@Nunuhainz

vielen Dank, dass du dich der Sache annimmst. Ich habe die Eintragungen korrigiert und die Befehlsfolge mal normal mit CMD gestartet, aber auch mit den Admin-Rechten. Leider zeigt der Computer keinerlei Reaktion noch eine Fehlermeldung an.
Ergänzung ()

ScoutX schrieb:
Noch einmal die Nachfrage: Dein Skript läuft nicht und Du willst es umgeschrieben haben?

Denn unter Win8 64bit läuft die vbs ohne Probleme. Ausgabe der Geburtstagsdaten exakt wie gewollt. Gerade selbst durch copy paste geprüft.
Unter einem Administratorkonto wohlgemerkt. Ein User sollte dies auch können, solange der User entsprechende Rechte hat.

Was mich vermuten läßt: Hast du das vbs aus dem Windows 7 übernommen?
Sind die Rechte möglicherweise dadurch falsch gesetzt. Erstell die Dateien neu.

Hallo,

der Script läuft bei mir nicht. Nur was ich nicht verstehe ist, ich habe zwei Rechner. Auf dem Desktop Windows 8 Pro 32bit und auf dem Notebook Windows 8 Pro 64bit. Auf beiden Rechner habe ich es so probiert und bei beiden Rechner wird mir nur unter Aufruf der Command-Ebene (siehe den Screenshot) angezeigt.

Ein andere VBS Datei (Verzögerte..) läuft ja auch korrekt auf beiden Rechnern.

Was meinst du mir umschreiben ?
Was meinst du mir Übernommen ?

Ich habe bei beiden Rechnern das Update durchgeführt, wobei ich beim Notebook leider nichts übernehmen konnte und das Update nochmals ohne Datenübernahme habe durchführen müssen. Auf dem Desktop ist der Updatevorgang einwandfrei durchgelaufen.
 

Anhänge

  • csript_1.jpg
    csript_1.jpg
    38,2 KB · Aufrufe: 664
Zuletzt bearbeitet:
ich vermute, dass etwas mit der Birthday.ini nicht stimmt. Erstell die Datei einmal neu und kopiere die "alten" Daten dort hinein.
 
Ich kann nur noch einmal betonen, dass dein ursprüngliches Skript laufen sollte.

Mein Schnelltest war auf einem Win 8 64bit Pro: Zwei Textdateien erstellt, sogar nur mit Wordpad den Code hier von der Seite eingefügt (führt oft zu Zeichencode Fehlern -- Ansi, Ascii, Unicode, Leerzeichen etc. ).
Im Vertrauen dessen, keine solchen Fehler zu bekommen, die Dateiendungen entsprechend umbenannt. Ini Datei entsprechend verschoben. Doppelklick der vbs in diesem Fall sogar auf dem Desktop als Administrator. Ini Datei hat auch alle Leserechte (schau dort noch mal nach).

Achja, den Code habe ich mit Firefox rauskopiert. Welcher Browser genommen wird, ist nicht irrelevant, da auch hier Zeichencode Fehler bei den unterschiedlichen Browsern auftauchen können. Die Bugs der Windows Zwischenablage sind ein Thema für sich.

Wenn das nicht funktioniert, ist die Upgradeinstallation das Übel und hat dir irgendeinen Kcommandointerpreterfehler ins System eingeschmuggelt.
 
Hallo,

ich danke Euch beiden. :)
Es ist geschafft. Der ausschlaggebende Punkt war das "NEU" schreiben der beiden Dateien. Wobei die INI-Datei wohl die wichtigste war. Jetzt wo ich die beiden Dateien über den Texteditor TextPad neu geschrieben (Inhalte natürlich kopiert) habe, kann ich mit einem Doppelklick die vbs-Datei starten, egal von welcher Oberfläche (ich habe Admin-Rechte) und es werden mir die Geburtstage so angezeigt, wie ich es von Windows 7 her kenne.

Jetzt muss ich nur einen Weg noch finden, wie ich die auf dem Desktop solange halten kann, bis ich ihn aufhabe. Der Rechner startet mit der Modern UI Oberfläche und gehe mitunter nicht gleich auf den Desktop. Aber dazu wird mir schon etwas einfallen.

Nochmals vielen Dank :)
 
Deswegen die Aufgabenplanung. Die Modern UI könnte man wohl auch irgendwie einsetzen.
Da müsste ich wohl auch noch länger überlegen, ob man die Skriptausgabe auf eine Kachel bekommt. Geht bestimmt.
 
Danke,

ich habe es als StartUp Link wieder gesetzt und es wird auf der Desktop Oberfläche solange dargestellt, bis ich ihn aufgerufen habe und das Fenster dann durch ein Klick schließe. Wenn kein Geburtstag anliegt, geht ja das Fenster erst gar nicht auf.

Das reicht mir aus.;)
 
AW: VBS Scripte unter Windows 8.1 (Wscript) ausführen

Hallo,
ich muss das gleiche Thema nochmals aufwärmen.

Jetzt habe ich das gleiche Problem wie schon vor einem Jahr. Alle die Vorschläge vom letzten Jahr habe ich schon ausprobiert. Leider klappt das jetzt nicht mehr.

Kann es sein, dass das Ausführen von VBS Dateien unter der Windows 8.1 Pro Version nicht mehr möglich ist. Das Problem tritt bei der 32bit und auch bei der 64bit Version auf.:eek:

UPDATE:
das Problem hat sich erledigt. Ich habe beim Übertragen der Daten in eine neue Datei wohl einen Fehler gemacht und eine Zeile beim Kopieren vergessen.
 
Zuletzt bearbeitet: (Fehler gefunden)
Zurück
Oben