2007-10-14, 10:55 AM
Erste Frage, hast du dieses Bild ( bei erstem reboot eventuell mit anderem Text) gesehen? Hast du dann OK oder CANCEL gedrückt oder timer ablaufen lassen?
Vitali Wrote:Erste Frage, hast du dieses Bild ( bei erstem reboot eventuell mit anderem Text) gesehen? Hast du dann OK oder CANCEL gedrückt oder timer ablaufen lassen?
[GuiRunOnce]
wucdcreator="wscript.exe %systemroot%\RunOnceEx.js"
Vitali Wrote:Hat sich leider etwas verzögert..
Also, damit wir nach Windows-Installation noch ein paar andere Programme installiert bekommen muss folgendes in winnt.sif eingetragen werden:Das ist eine Anweisung an Windows ein Schlüssel HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\wucdcreator mit dem Wert wscript.exe %systemroot%\RunOnceEx.js in Windows-Registry zu erstellen.Code:[GuiRunOnce]
wucdcreator="wscript.exe %systemroot%\RunOnceEx.js"
Dieser RunOnce Schlüssel wird ein einzige mal ausgeführt, nämlich bei nächstem anmelden eines x-belibigen Users nach neustart des Rechners.
In unserem Fall wird Befehl wscript.exe %systemroot%\RunOnceEx.js ausgeführt. RunOnceEx.js beinhaltet die Befehle, die wir bei Integration von Software im unterem Fenster im Creator eintragen haben. RunOnceEx.js führt diese Befehle aber aber nicht aus! Alle Befehle werden wieder in Registry geschrieben dieses mal aber in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\*. Diese RunOnceEx ist ip Prinzip das selbe wie RunOnce, sieht nur besser aus Die RunOnceEx-Befehle werden normalerweise nach neustart ausgeführt, lässen sich aber mit einem Befehl rundll32.exe iernonce.dll,RunOnceExProcess sofort starten, was von RunOnceEx.js auch gemacht wird.
So sieht der normale Installation-Prozess bei WUCD-Creator aus. Und jetzt in der Liste zuinstallierenden Programmen taucht -= REBOOT =- auf, was nun?
RunOnceEx.js schreibt wie gewöhnt RunOnceEx-Befehle ins Regystry, dieses mal aber nicht alle, sonder nur die Befehle die vor -= REBOOT =- ausgeführt werden sollen plus der Reboot-Befehl selbst. Der sieht so aus reboot.exe /t 60 /m \"{message}\" /r {runat}. Dabei wird {message} durch "PC aufräumen und neustarten" ersetzt und {runat} durch eine Zahl, z.B. 3. Die reboot.exe ist ein AutoIt-Scrip. Was macht er? Zuerst startet er ein Countdown mit 60 Sec und schreibt den Text "PC aufräumen und neustarten" im Fenster. Nach Ablauf des Countdown werden wieder ein Paar Registry-Schlüssel geschrieben. Erste ist HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\guirunonce0 mit dem Wert wscript.exe %systemroot%\runonceex.js. Somit nach neustart wirt RunonceEx.js wieder gestartet. Der andere Schlüssel ist HKLM\SOFTWARE\RunOnceEx.js\runat mit Wert 3. Das ist Anweisung an RunOnceEx.js nicht wieder mit erstem Programm anzufangen, sondern glich mit der dritten!!
Das war alles. Das Problem mit Winfuture-Updatepack, dass er auch nach neustart des Rechners weiter Updates installieren will. Und es gibt nur zwei Wege es zu machen RunOnce oder RunOnceEx...
Ich würde gern wissen welche Schlüssel Winfuture-Updatepack eigentlich schreibt!
Kannst du folgendes tun?
Zuerst die erste teil des Packs installieren lassen, danach die Reboot.exe abbrechen, und anschliessend mit regedit.exe Schlüssel HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce und HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx exportieren und hier posten.
Danach können wir weiter denken was wir dagegen tun wollen.
BinCZ Wrote:Dazu brauche ich aber noch folgende wichtige Information:Es wird dynamisch ermittelt..
Legst Du die 'runat'-Parameter beim Speichern des Projektes bereits fest und hinterlegst sie irgendwo, z. B. in der settings.txt, oder ermittelst Du sie dynamisch vor dem jeweils nächsten
-=REBOOT=- während der laufenden Installation?
BinCZ Wrote:Und dann bräuchte ich noch einen Tipp: Laut Beschreibung sollen Daten zwischen einer VM und dem Host per Drag and Drop austauschbar sein. Aber irgendwie krieg' ich das nich' hin.Ich verwende VirtualBox. Wenn auf Gastsystem Gasterweiterung installiert ist funktionier sogar gemeinsame Zwischenablage !! Sonst gibst sogenannte Gemeinsame Ordner der auf Gastsystem als eine Netzwerk-Freigabe zugreifbar, sogar ohne einer Netzwerkkarte im Gastsystem!!! Also sehr empfehlenswert.
Bei meiner Installations-Test-VM handelt es sich um eine BareMetal-VM mit einer non-persistant HDD. Die Tools werden nicht installiert, obwohl ich der VM gesagt habe, sie soll sie automatisch installieren.
Hast Du vielleicht einen Tipp auf Lager, wie ich die Registry-Exporte auf den Host 'rüberbekomme, ohne der VM den Zugriff auf mein Host-D: Laufwerk zu erlauben?
BinCZ Wrote:Das müsste dann genauso aussehen, wie Du es beschrieben hast:guirunonce0 ist REG_EXPAND_SZ, auf deutsch Wert der erweiterberen Zeichenfolge
Erst einmal müsste
"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\guirunonce0"
mit dem Wert
"wscript.exe %systemroot%\runonceex.js"
geschrieben werden, um nach Neustart "RunonceEx.js" wieder zu starten.
Zum zweiten müsste noch
"HKLM\SOFTWARE\RunOnceEx.js\runat"
mit dem Wert des Punktes, an dem er die Installation weiterführen soll, geschrieben werden.
Ich wäre Dir sehr dankbar, gäbest Du mir dazu noch einige Zusatzinformationen:
Sind ...\guirunonce0 und ...\runat eigenständige Schlüssel, die über die Zeichenfolge "Standard" definiert werden, oder sind sie Werte in ...\RunOnce, bzw. ...\RunOnceEx.js. Wenn letzteres der Fall sein sollte, ist dann ...\runat ein REG_SZ oder ein anderer Wert?
BinCZ Wrote:Kann das funktionieren, oder existiert die RunOnceEx.js zu diesem Zeitpunkt schon gar nicht mehr in %SYSTEMROOT% oder hat vielleicht schon ihre %CDROM%-Information verloren?RunOnceEx.js befindet sich immer in C:\Windows und wird auch nie gelöscht. Die %CDROM% wird bei jedem Start von RunOnceEX.js auf neu ermittelt.