Automatische Installation von USB Stick unter Win XP

  • Hallo ihr Lieben,

    vorne weg: Ich kenne mich mit AutoIT noch nicht so gut aus - arbeite diese Woche eigentlich das erste Mal so richtig damit.

    Folgendes:

    An einem Rechner mit einem XP Betriebssystem soll ein Programm von einem USB Stick installiert werden.

    Hier also der erste Ansatz:


    Nun geht es darum die Benutzer einzugeben...
    Das 1. Eingabefeld(Benutzername) heißt laut AutoIT Windows Info

    Window:

    Title: Neuen Programm Benutzer hinzufügen
    Class: #32770

    Control:
    Class: Edit
    Instance: 1
    ClassnameNN: Edit1
    ID: 5058

    Könnte man hier mit GUICtrlSetData arbeiten?
    Also:

    Code
    $edit1 = GUICtrlSetData($edit1, "benutzername")

    ?

    Oder denke ich grade falsch?
    ?(


    Das wäre erstmal der 1. Punkt, an dem ich grade "hake". :D
    Da kommt noch ein bisschen :)

    Später nach der Eingabe z.B. müsste ich diesen Benutzer auswählen, - Das Feld gehört der Klasse "SysListView32" an. - Also mit dem Findertool lässt sich nur das komplette Feld auswählen,
    genauso später bei der Rechte vergabe (Mehrere Kontrollkästchen)
    Auf Wunsch stell ich gerne ein Foto ein.

    Dies soll alles automatisch geschehen.
    Nach der Vergabe der Rechte, wird die Lizenzierung auch mittels Eingabe (Wie bei der Benutzereingabe) gemacht(Lizenzcode ist volumenkey).
    Danach muss eine Manuelle Aktivierung erfolgen, dabei entsteht eine Datei, die auch auf dem USB Stick gespeichert werden soll.

    Kann mir da vielleicht jemand helfen? ?(?(?(
    ?(?(

  • Hallöschen :)

    Also bis dahin funktioniert der Code:


    AutoIt
    ShellExecuteWait("programm.msi")

    Also der Installationsassistent öffnet sich wunderbar.
    Aber dann soll das Skript auf "Weiter" - im nächsten Fenster (Der Titel des Fensters ändert sich nicht) das Kontrollhäkchen "Lizenzvereinbarung akzeptieren" aktivieren, dann wieder auf Weiter und dann im nächsten Fenster auf "Installieren" - nach der Installation kommt ein fenster (Immer noch gleicher Titel) mit "FertigstelleN" -

    das würde mir erstmal reichen ^^' Funktioniert das über Controlklick? Oder lieber ein anderen Befehl?

  • Hallo!

    Das geht deutlich einfacher. BugFix hat es eh schon geschrieben: Es gibt Paramter für MSI - Installationen:

    lg
    Racer

    Windows ® Installer. V 5.0.7601.18896


    msiexec /Option <Erforderliche Parameter> [Optionale Parameter]


    Installationsoptionen
    </package | /i> <Produkt.msi>
    Installiert oder konfiguriert ein Produkt.
    /a <Produkt.msi>
    Administrative Installation - Installiert ein Produkt im Netzwerk.
    /j<u|m> <Produkt.msi> [/t <Transformliste] [/g <Sprach-ID>]
    Kündigt ein Produkt an - m für alle Benutzer, u für den aktuellen Benutzer
    </uninstall | /x> <Produkt.msi | Produktcode>
    Deinstalliert das Produkt.
    Anzeigeoptionen
    /quiet
    Hintergrundmodus, keine Benutzerinteraktion
    /passive
    Unbeaufsichtigter Modus - Nur Statusleiste
    /q[n|b|r|f]
    Legt die Benutzeroberfläche fest.
    n - Keine Benutzeroberfläche
    b - Einfache Benutzeroberfläche
    r - Reduzierte Benutzeroberfläche
    f - Vollständige Benutzeroberfläche (Standard)
    /help
    Hilfeinformationen
    Neustartoptionen
    /norestart
    Kein Neustart nach Abschluss der Installation
    /promptrestart
    Benutzereingabe, falls Neustart erforderlich ist
    /forcerestart
    Computer nach Abschluss der Installation immer neu starten
    Protokolllierungsoptionen
    /l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <Protokolldatei>
    i - Statusmeldungen
    w - Nicht schwerwiegende Warnungen
    e - Alle Fehlermeldungen
    a - Ausführung von Aktionen
    r - Aktionsspezifische Einträge
    u - Benutzeranforderungen
    c - Ursprüngliche Benutzeroberflächenparameter
    m - Informationen betreffend zuwenig Arbeitsspeicher oder schwerwiegendem Abbruch
    o - Meldungen betreffend zuwenig Speicherplatz
    p - Terminaleigenschaften
    v - Ausführliche Ausgabe
    x - Zusätzliche Debuginformationen
    + - An vorhandene Protokolldatei anhängen
    ! - Jede Zeile ins Protokoll aufnehmen
    * - Alle Informationen mit Ausnahme der Optionen v und x protokollieren
    /log <Protokolldatei>
    Entspricht /l* <Protokolldatei>
    Aktualisierungsoptionen
    /update <Update1.msp>[;Update2.msp]
    Übernimmt Update(s).
    /uninstall <Patchcode-GUID>[;Update2.msp] /package <Produkt.msi | Produktcode>
    Entfernt Update(s) für ein Produkt.
    Reparaturoptionen
    /f[p|e|c|m|s|o|d|a|u|v] <Produkt.msi | Produktcode>
    Repariert ein Produkt.
    p - nur wenn eine Datei fehlt
    o - wenn eine Datei fehlt oder eine ältere Version installiert ist (Standard)
    e - wenn eine Datei fehlt oder eine gleiche bzw. ältere Version installiert ist
    d - wenn eine Datei fehlt oder eine andere Version installiert ist
    c - wenn eine Datei fehlt oder die Prüfsumme nicht mit dem berechneten Wert übereinstimmt
    a - Erzwingt die Neuinstallation aller Dateien
    u - Alle erforderlichen benutzerspezifischen Registrierungseinträge (Standard)
    m - Alle erforderlichen Computerspezifischen Registrierungseinträge (Standard)
    s - Alle vorhandenen Verknüpfungen (Standard)
    v - Führt von der Quelle aus und speichert das lokale Paket zwischen
    Öffentliche Eigenschaften festlegen
    [PROPERTY=Eigenschaftswert]


    Weitere Informationen betreffend der Befehlszeilensyntax erhalten Sie im Windows ® Installer SDK.

  • Hey Danke noch mal für Eure Hilfe :)

    Die Installation erfolgt mittlerweile stupide über eine .cmd Datei und die Informationen für User habe ich in die MSI geschrieben (Wusste gar nicht, dass es für das Programm ein MSI Configurator gibt...) - die Aktivierung soll zukünftig über einen Aktivierungsserver erfolgen, die Informationen hierfür stehen auch in der MSI :)

    nun lautet also meine Aufgabe für die restliche Woche:
    1. Rausfinden, ob Servicepack 1 oder Servicepack 2 installiert ist.
    2. Wenn Servicepack 1 -> XY in die Firewall schreiben.
    Wenn Servicepack 2 -> Weiter zu Schritt 3
    3. Die IP Adresse des Gateways rausfinden & in einer Variablen speichern
    4. Eine Route hinzufügen
    5. Die Installation des o.g. Programmes ^^


    Also Danke noch mal für Eure Hilfe... :)