Very Very harter Brocken (IIS)

  • GoooooOOOOOOD Morning Deutschland

    Ich bin gerade an einem Projekt dran wo ich auf einem Windows 2003 Standard Server einen IIS 6 incl Mysql und PHP draufknallen soll.

    Okay "Das Problem das wir haben" sagte mein Chef "ist das der Kunde bei dem das alles installiert werden soll - sagen wir mal Salop "Nicht gerade der hellste ist" (Mann könnte Ihn in einer Telefonzelle austricksen und er würde es nicht merken) Wir können das Projekt aber auch nicht selber installieren da der Kunde in Dublin chillt und über Telefon fällt auch ins Wasser da er eine Mischung aus Deutsch-Englisch spricht und nicht viel Ahnung von EDV hat. Remote ist auch nicht drin wegen Sicherheitsvorkehrungen usw.

    Okay hab ich gedacht nimmst du brav Autoit und "du wirst das Kind schon schaukeln".

    Doch das "Glück" und das "Können" waren nicht auf meiner Seite

    Bisheriges Script

    Spoiler anzeigen


    RunWait(@COMSPEC & " /c " & "Start %SystemRoot%\system32\inetsrv\iis.msc")
    WinWaitActive("Internetinformationsdienste-Manager")
    Send( "{Down}")
    Send("{RIGHT}")
    Send( "{Down 3}")
    Send("{Tab}")
    ;WinActive("Internetinformationsdienste-Manager")
    ;MouseClick("right")

    Msysql und PHP hab ich komplett Automatisiert/Konfiguriert doch bei der Einrichtung des IIS bin ich mit meinem Englisch (Autoit Wissen) am Ende

    Da wollte ich mal hier im Forum nachfragen ob mir da eine weiterhelfen könnte

    Ich hab auch mal ein Video zusammengeklebt damit ihr euch den Ablauf ansehen könnt wie das händisch/Manuel erledigt wird 17MB
    http://web285.donau105.server4you.de/log/iis6.zip

    Mann kann IIS Scripten
    http://www.aspheute.com/artikel/20010504.htm

    Dann müßte das auch mit Autoit gehen oder?

    Wäre nett-super-geil-süß wenn mir einer da weiterhelfen könnte

    Einmal editiert, zuletzt von Real_Bourbon (17. Oktober 2006 um 23:26)

    • Offizieller Beitrag

    Hi,

    habe mir gerade dein Video angeguckt. Ich sehe da kein Problem. Sollte alles mit Autoit funktionieren.

    Eigentlich mußt du nur das Autoit Window Info.exe Tool strapazieren, um die ganzen ControlCommands hinzubekommen.

    Umgehbungsvariablen
    Dienst starten / stoppen
    Reboot
    usw.

    geht natürlich einfacherdirekt per Funktion als sich durch dir GUI zu klicken.

    So long,

    Mega

    P.S.: Oder du machst ne Dienstreise :rofl:

  • Ah ein Nachtschwärmer unterwegs :) :keks:

    Das Autoit Window Info Tool zeigt mir aber keine Controll IDs usw an

    Nur einen Visible Text (Der sich aber je nach Hostname ändert)
    Und Mauskoordinaten die aber auch nicht immer gleich sind

    Und um eine Dll hinzuzufügen muß ich rechtsklick simulieren doch wenn ich das mit MouseClick("right") realisieren will spring er mir immer aus dem IIS Fenster auf z.b den Desktop und öffnet da das Kontextmenü

    Der Kunde ist nicht gerade für seine Spendierhosen bekannt.

  • Eigentlich geht das schon.Mann muss halt rum Probierten.In autoit gibt es ja den befehl Mousemove & Mouseclick.... sollte dir weiter helfen.

  • Ist ja nicht so das ich nicht rumprobiert hätte. Ich bin ja nicht einer der Aua schreit bevor der schmerz eintritt :lol:

    Bloss das Navigieren durch die Reiter wie z.b auf dem Foto bekomme ich nicht hin

    wenn ich Tabs abfeuere brauche ich warte mal lass mal kurz nachrechnen
    Dafür brauche ich 18 Tabs und ein paar down

    Bei einem MouseClick("right", 400, 500, 2) bleibt er mir nicht in der IIS Console sondern springt in einen Ordner und führt dort rechtsklick durch

    @th.merge was ist den Au3Record hab wohl was verpasst

    • Offizieller Beitrag

    Hi,

    es handelt des sich doch um eine Konfiguration eines Mircrosoft Produktes, richtig? Da muss es doch eine Möglichkeit geben die Installation mit Parametern per Konfig-File durchzuführen. Kann doch nicht sein, dass man da durch eine GUI klicken muss.

    Drück mal Alt+F6 in Scite.

    So long,

    Mega

  • Olaaa

    Hab mir die Nächte um die Ohren geschlagen und dabei immer brav der AUTOIT-Hilfe gehuldigt. Und es ist vollbracht.

    Ein Installer der Seinesgleichen sucht :) Schleimschei.

    Nein JOke

    Das Script installiert MySQL und PHP trägt PHP in die Umgebungsvariable ein und konfiguriert den zuvor manuell installierten IIS 6 für MySQL und PHP

    "Meine Bitte nun"
    Kann mal jemand ein AUGE oder auch BEIDE drauf werfen und etwas zu Thema "Code erstellen wie Erwachsene" beitragen

    Weis nämlich nicht ob das so gut ist :)


    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.2.1.10 (beta)

    [/autoit] [autoit][/autoit] [autoit]

    Author: [email='otufekovic@p3-consulting.de'][/email]

    [/autoit] [autoit][/autoit] [autoit]

    Script Function: Setzt Umgebungsvariable für PHP

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ;-----------------------------------------------------------------------------------------
    ;Autoit Optionen
    ;-----------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ;Deaktiviert AutoIt-Icon im Windows-Tray
    #NoTrayIcon
    ;Opt("TrayIconDebug", 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;-----------------------------------------------------------------------------------------
    ;Überprüft ob die MySQL Datei im selben Ordner ist
    ;-----------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ;Überprüft ob das Programm vorhanden
    If Not FileExists("mysql-essential-5.0.26-win32.msi") Then

    MsgBox(0, "Error", "Das Script und die Datei mysql-essential-5.0.26-win32.msi" & @CRLF & _
    "müßen im selben Verzeichnis liegen", 10)

    [/autoit] [autoit][/autoit] [autoit]

    Exit ; Programm beenden
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;-----------------------------------------------------------------------------------------
    ;Installiert MySQL
    ;-----------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ;Startet Installationsprogramm
    RunWait(@COMSPEC & " /c " & "Start mysql-essential-5.0.26-win32.msi")

    [/autoit] [autoit][/autoit] [autoit]

    ;Installiert Mysql
    WinWait("MySQL Server 5.0 - Setup Wizard")
    ControlClick("MySQL Server 5.0 - Setup Wizard","Next","Button1")

    [/autoit] [autoit][/autoit] [autoit]

    ;Auswahl des Setup Typ
    WinWait("MySQL Server 5.0 - Setup Wizard")
    ControlClick("MySQL Server 5.0 - Setup Wizard","Next","Button6")

    [/autoit] [autoit][/autoit] [autoit]

    ;Beginn der Installation
    WinWait("MySQL Server 5.0 - Setup Wizard")
    ControlClick("MySQL Server 5.0 - Setup Wizard","Install","Button1")

    [/autoit] [autoit][/autoit] [autoit]

    ;Sign Up deaktivieren
    WinWait("MySQL.com Sign Up - Setup Wizard")
    ControlClick("MySQL.com Sign Up - Setup Wizard","Skip Sign-Up","TTntRadioButton.UnicodeClass1")
    ControlClick("MySQL.com Sign Up - Setup Wizard","Next","TTntButton.UnicodeClass2")

    [/autoit] [autoit][/autoit] [autoit]

    ;Beendet die Installation
    WinWait("MySQL Server 5.0 - Setup Wizard")
    ControlClick("MySQL Server 5.0 - Setup Wizard","&Finish","Button1")

    [/autoit] [autoit][/autoit] [autoit]

    ;-----------------------------------------------------------------------------------------
    ;Konfiguriert MySQL
    ;-----------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ;MySQL Konfigurieren
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Next >","TTntButton.UnicodeClass2")

    [/autoit] [autoit][/autoit] [autoit]

    ;Konfigurations-Modus
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Next >","TTntButton.UnicodeClass3")

    [/autoit] [autoit][/autoit] [autoit]

    ;Auswahl Servertyp
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Server Machine","TTntRadioButton.UnicodeClass2")
    ControlClick("MySQL Server Instance Configuration Wizard","Next >","TTntButton.UnicodeClass3")

    [/autoit] [autoit][/autoit] [autoit]

    ;Auswahl Databasenutzung
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Next >","TTntButton.UnicodeClass3")

    [/autoit] [autoit][/autoit] [autoit]

    ;Auswahl Installationspfad
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Next >","TTntButton.UnicodeClass3")

    [/autoit] [autoit][/autoit] [autoit]

    ;Auswahl Connectiontyp/Anzahl
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Online Transaction Processing (OLTP)","TTntRadioButton.UnicodeClass8")
    ControlClick("MySQL Server Instance Configuration Wizard","Next >","TTntButton.UnicodeClass3")

    [/autoit] [autoit][/autoit] [autoit]

    ;Auswahl Netzwerkoptionen
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Enable Strict Mode","TTntRadioButton.UnicodeClass7")
    ControlClick("MySQL Server Instance Configuration Wizard","Next >","TTntButton.UnicodeClass3")

    [/autoit] [autoit][/autoit] [autoit]

    ;Auswahl Character Set
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Next >","TTntButton.UnicodeClass3")

    [/autoit] [autoit][/autoit] [autoit]

    ;Auswahl Windows Optionen
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Include Bin Directory in Windows PATH","TTntCheckBox.UnicodeClass1")
    ControlClick("MySQL Server Instance Configuration Wizard","Next >","TTntButton.UnicodeClass3")

    [/autoit] [autoit][/autoit] [autoit]

    ;Auswahl Security Optionen
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Modify Security Settings","TTntCheckBox.UnicodeClass2")
    ControlClick("MySQL Server Instance Configuration Wizard","Next >","TTntButton.UnicodeClass3")

    [/autoit] [autoit][/autoit] [autoit]

    ;Alle Einstellungen ausführen
    WinWait("MySQL Server Instance Configuration Wizard")
    ControlClick("MySQL Server Instance Configuration Wizard","Execute","TTntButton.UnicodeClass3")

    [/autoit] [autoit][/autoit] [autoit]

    ;Programm beenden
    WinWaitActive("MySQL Server Instance Configuration Wizard")
    Sleep(3000)
    WinClose("MySQL Server Instance Configuration Wizard")

    [/autoit] [autoit][/autoit] [autoit]

    ;Stop den MySQL Dienst
    ;;;;;Run(@ComSpec & " /c " & "net stop mysql", "", @SW_HIDE)
    Run(@ComSpec & " /c " & "net stop mysql")
    Sleep(3000)

    [/autoit] [autoit][/autoit] [autoit]

    ;-----------------------------------------------------------------------------------------
    ;Installiert PHP
    ;-----------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ;Startet die PHP Installation
    shellexecute(@ScriptDir & "\Engagement\Engagement.msi")
    ;Run("Engagement.exe")
    Sleep(15000)
    ;-----------------------------------------------------------------------------------------
    ;Konfiguriert den IIS
    ;-----------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    RunWait(@COMSPEC & " /c " & "Start %SystemRoot%\system32\inetsrv\iis.msc")
    WinWaitActive("Internetinformationsdienste-Manager")
    Send( "{Down}")
    Send("{RIGHT}")
    Send( "{Down 3}")
    Send("{Tab}")
    MouseClick("right", 420, 274, 2)
    MouseClick("right", 472, 287, 2)
    Send("PHP ISAPI")
    ControlClick( "Neue Webdiensterweiterung", "H&inzufügen...", "Button2")
    Send("C:\PHP\php5isapi.dll")
    ControlClick( "Datei hinzufügen", "OK", "Button2")
    ControlClick( "Neue Webdiensterweiterung", "E&rweiterungsstatus auf", "Button1")
    ControlClick( "Neue Webdiensterweiterung", "OK", "Button4")
    MouseClick("left", 81, 132, 2)
    MouseClick("right", 212, 102, 2)
    Send( "+C")
    MouseClick("left", 405, 55, 2)
    ControlClick( "Eigenschaften von Standardwebsite", "S&kriptzugriff", "Button9")
    Send( "+o")
    Send( "+H")
    Send("C:\PHP\php5isapi.dll")
    MouseClick("left", 259, 184, 2)
    Send(".php")
    ControlClick( "Anwendungserweiterungszuordnung hinzufügen/bearbeiten", "Be&grenzen auf:", "Button4")
    Send("{Tab}")
    Send("GET,POST,HEAD")
    ControlClick( "Anwendungserweiterungszuordnung hinzufügen/bearbeiten", "OK", "Button7")
    ControlClick( "Anwendungskonfiguration", "OK", "Button11")
    MouseClick("left", 495, 59, 2)
    Send( "+i")
    Send( "index.php")
    ControlClick( "Inhaltsseite hinzufügen", "OK", "Button1")
    Send( "+b")
    ControlClick( "Eigenschaften von Standardwebsite", "OK", "Button10")
    Sleep("1000")
    WinClose("Internetinformationsdienste-Manager")

    [/autoit] [autoit][/autoit] [autoit]

    ;-----------------------------------------------------------------------------------------
    ;Setzt die PHP in die Umgebungsvariable
    ;-----------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ;Startet die DLL
    Run("C:\WINDOWS\system32\rundll32.exe C:\WINDOWS\system32\shell32.dll,Control_RunDLL SYSDM.CPL,System")

    [/autoit] [autoit][/autoit] [autoit]

    ;Navigation der Tabs
    WinWaitActive("Systemeigenschaften")
    Send("{Right 3}")
    ControlClick("Systemeigenschaften", "&Umgebungsvariablen", 130)
    WinWaitActive("Umgebungsvariablen")
    ControlClick("Umgebungsvariablen", "&Umgebungsvariablen", 130)
    Send("{Tab 4}")
    Send("{Down 4}")
    ControlClick("Umgebungsvariablen", "Bea&rbeiten", 408)
    Send("{END}")
    Send(";C:\PHP")
    ControlClick("Systemvariable bearbeiten", "OK", 1)
    ControlClick("Umgebungsvariablen", "OK", 1)
    ControlClick("Systemeigenschaften", "OK", 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;-----------------------------------------------------------------------------------------
    ;Rebootet den Server
    ;-----------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ;Reboot des IIS Servers
    RunWait(@ComSpec & " /c " & 'shutdown -s -f -t 30 -c "Die Installation ist Abgeschlossen, der Server muß rebootet werden"')

    [/autoit]

    Danke auf Französisch, Irisch, Kroatisch
    MERCI, Go raith miile maith agat, Hvala lijepa

    • Offizieller Beitrag

    Hi,

    Glückwunsch! Sieht nicht schlecht aus.

    Anmerkungen:

    1. Die Texte könnte man auslagern in eine ini, dann könnte man später das Skript unverändert lassen, falls sich mal die Version ändert.

    2. Treffen die MouseClicks bei ;Konfiguriert den IIS immer?
    Was ist wenn die Auflösung anders ist? Getestet?

    3. WinWaitActive("Umgebungsvariablen") wolltest du das nicht in England laufen lassen?

    4. Mit _FileWriteLog() könntest du ein Log schreiben nach allen Steps

    5. Sleeps sind immer fehleranfällig. Kannst du nicht in einer Schleife prüfen bis ein definiertes Ereignis eintritt und dann weitermachen?

    So, soll erstmal reichen. :klatschen:

    So long,

    Mega

    • Offizieller Beitrag

    Ich würde den MySQL Install Part anders machen:

    [autoit]


    ;Startet Installationsprogramm
    RunWait(@COMSPEC & " /c " & "Start mysql-essential-5.0.26-win32.msi /quiet /passive")

    [/autoit][autoit][/autoit][autoit]

    ;Sign Up deaktivieren
    WinWait("MySQL.com Sign Up - Setup Wizard")
    ControlClick("MySQL.com Sign Up - Setup Wizard","Skip Sign-Up","TTntRadioButton.UnicodeClass1")
    ControlClick("MySQL.com Sign Up - Setup Wizard","Next","TTntButton.UnicodeClass2")

    [/autoit][autoit][/autoit][autoit]

    ;Beendet die Installation
    WinWait("MySQL Server 5.0 - Setup Wizard")
    ControlClick("MySQL Server 5.0 - Setup Wizard","&Finish","Button1")

    [/autoit][autoit][/autoit][autoit]

    ;ConfigWizard starten
    RunWait(@COMSPEC & " /c" & "Start 'c:\Programme\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe'")

    [/autoit]
  • @th.merge

    Die Texte könnte man auslagern in eine ini.
    Welche Texte
    Bin eigendlich ein Designer und kein Programmiere hab mit Autoit in meiner Firma herumgeprallt und da hat mir der Chef befohlen die Installation "Bei Wasser und Brot" zu Automatisieren.
    :lol:

    Sleeps sind immer fehleranfällig. Kannst du nicht in einer Schleife prüfen bis ein definiertes Ereignis eintritt und dann weitermachen?
    Wenn ich wüßte wie würde ich das machen. Ich hab nicht mahl Fehlerroutinen eingebaut das heißt wenn etwas abschmiert dann weiß man durch die Installationspeed nicht warum
    Mir fehlt d

    Treffen die MouseClicks bei ;Konfiguriert den IIS immer?
    Ich will es hoffen. Bei 3 verschiedenen Testumgebungen hab ich das Skript auf Win 2003 Stand und Entp. getestet und immer lief die IIS_Config reibungslos. Der große Test kommt aber erst im laufe der nächsten Woche da wird es auch auf einem realen Server getestet. Nach dem Test wird das Script auf Englisch umgewerkelt auf einem Englischen Win 2003 getestet und alles wird wieder gut.

    Ein Logfile hab ich mit Fileopen mal Testweise eingebaut hat aber bei MIR Probleme gemacht. Ich probier es aber mit _FileWriteLog() hört sich lecker an

    Nicht schlecht ein gutes Auge fürs Detail
    WinWaitActive("Umgebungsvariablen") wolltest du das nicht in England laufen lassen?

    Wir haben zum Testen nur eine "Win 2003 Standard Ger" CD gehabt
    da es innerhalb 2 Wochen realisiert werden sollte, und da ich nicht gerade der schnellste bin in Autoit, hab ich das genommen was da war.
    Soll ja auch erst einmal auf einem Testserver getestet werden.

    Ich hab das in einer Vm realisiert wobei parallel mein Arbeitsgenosse das CMS programmiert hat.

    admin sieht gut aus dein Beispiel. Wenn du mir nur noch erklären würdest wieso du es so machen würdest, wäre ich dir sehr dankbar.
    "/quiet /passive" Unser Chef wollte es so gut wie möglich und so spektakulär wie möglich da "Das Auge bekanntlich immer mitißt"

    2 Mal editiert, zuletzt von Real_Bourbon (20. Oktober 2006 um 12:03)

    • Offizieller Beitrag

    Hallo,

    wenn ihr schon MySQL und PHP benutzt warum nicht auch gleich APACHE als Webserver! Von apachefriends.org gibt es ein Komplettpacket mit dem Namen XAMPP!

    Vorteile:

    • Supereinfach zu installieren
    • ist alles drin was man braucht(Apache; MySQL; PHP; phpMyAdmin; FileZilla FTP Server; OpenSSL; ...)
    • gibt es für Linux, Windows, MAC OS und Solaris
    • Daten sind einfach von Linux <->Windows zu portieren (die andern kenne ich nicht)


    Nachteile:

    • ich würde welche hinschreiben wenn ich nur welche wüsste

    Ich habe beide Versionen (auf Linux als Intranetserver und auf Windows als Testumgebung) laufen, allerdings nicht die neusten und bin voll damit zufrieden!