Teamviewer 8 Host Silent Install

Bei meinen PC-Kunden installiere ich gerne Teamviewer Host. Das erleichtert die Lösung kleinerer Probleme doch gewaltig. Problem: Die Teamviewer Installer unterstützen bekanntermaßen keine unattended bzw. silent install, man soll schließlich die Businessversion mit MSI-Paket kaufen.

Update 3. Mai 2014: Eine aktualisierte Variante für Teamviewer 9 Host steht hier bereit, eine aktualisierte Variante für TeamViewer 9 Voll/Normal hier.

Lösung: Automatisierung des Installers, in diesem Fall mit AutoIt (mal wieder). Es wird auf die spezifischen Fenster des Installationsassistenten gewartet, und entsprechend der gescripteten Vorgaben werden dann simulierte Eingaben an den Installer gesendet. Am Ende wird der gerade installierte Host noch dem eigenen Account / der eigenen „Kontaktliste“ hinzugefügt, und Einstellungen importiert. Die Reg-Datei mit Einstellungen kann man aus einer Installation heraus exportieren.

Bevor ich zum Code komme, hier ein paar Hinweise dazu:

  • Zeile 9, Variable $strPassword → Das Passwort, das später zum verbinden genutzt wird.
  • Zeile 14, Variable $strUser → Emailadresse oder Benutzername des Kontos, dem der Host hinzugefügt wird.
  • Zeile 15, Variable $strPass → Passwort für das Konto, dem der Host hinzugefügt wird.
  • Das Skript erwartet einen deutschen Installer, wenn die erwarteten Texte angepasst werden, kann es aber auch für andere Sprachversionen genutzt werden.

Hier das Skript:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\update.ico
#AutoIt3Wrapper_outfile=tv8host.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
$verTag = "8"
$wTitle = "TeamViewer " & $verTag & " Host Installation"
$strPassword = "support"
$strMachineName = @ComputerName
$strTrayTitle = "TeamViewer " & $verTag & " Host Auto-Install"

$wTitle2 = "Unbeaufsichtigter Zugriff"
$strUser = "user"
$strPass = "pass"

Opt("SendKeyDelay", 250)

TrayTip($strTrayTitle, "Warte auf Setup...", 0, 1)
WinWait($wTitle)
TrayTip($strTrayTitle, "Konfiguriere Installation...", 0, 1)
WinActivate($wTitle)
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:4]") ; Erweiterte Einstellungen check
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:2]") ; Weiter
WinWait($wTitle, "Einsatzbereich")
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:4]") ; Privat radio
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:2]") ; Weiter
WinWait($wTitle, "Lizenzabkommen")
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:4]") ; Akzeptiere... check
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:5]") ; Privat check
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:2]") ; Weiter
WinWait($wTitle, "Kennwort")
ControlSend($wTitle, "", "[CLASS:Edit; INSTANCE:1]", $strPassword) ; Passwort 1
ControlSend($wTitle, "", "[CLASS:Edit; INSTANCE:2]", $strPassword) ; Passwort confirm
;ControlSend($wTitle, "", "[CLASS:Edit; INSTANCE:3]", $strMachineName) ; Host name
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:4]") ; add to list check
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:2]") ; Weiter
WinWait($wTitle, "VPN")
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:2]") ; Weiter
WinWait($wTitle, "Zielverzeichnis auswählen")
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:2]") ; Weiter
WinWait($wTitle, "Startmenü-Ordner bestimmen")
ControlClick($wTitle, "", "[CLASS:Button; INSTANCE:2]") ; Fertigstellen
WinWaitClose($wTitle)
TrayTip($strTrayTitle, "Installation abgeschlossen, füge Computer zur Support-Liste hinzu...", 0, 1)

; Install done - adding to list
WinWait($wTitle2, "Ich habe bereits ein TeamViewer Konto")
WinActivate($wTitle2, "Ich habe bereits ein TeamViewer Konto")
ControlSend($wTitle2, "", "[CLASS:Edit; INSTANCE:2]", $strUser) ; User
ControlSend($wTitle2, "", "[CLASS:Edit; INSTANCE:3]", $strPass) ; Pass
ControlClick($wTitle2, "", "[CLASS:Button; INSTANCE:6]") ; Weiter
WinWait($wTitle2, "Dieser Computer wurde Ihrer Liste hinzugefügt")
ControlClick($wTitle2, "", "[CLASS:Button; INSTANCE:7]") ; Fertigstellen
WinWaitClose($wTitle2)
TrayTip($strTrayTitle, "", 0, 1)

; Close info dialog
WinWait("TeamViewer", "Bereit zum Verbinden")
WinActivate("TeamViewer")
WinClose("TeamViewer", "Bereit zum Verbinden")

TrayTip($strTrayTitle, "Alles erledigt, setze noch ein paar Einstellungen...", 0, 1)

; Import configuration
RunWait(@ComSpec & " /c net stop TeamViewer8", @ScriptDir)
RunWait(@ComSpec & " /c ""regedit.exe /s tv8host.reg""", @ScriptDir)
RunWait(@ComSpec & " /c net start TeamViewer8", @ScriptDir)

; Close info dialog
WinWait("Information", "TeamViewer Host ist nun auf diesem Computer installiert")
WinActivate("Information")
WinClose("Information", "TeamViewer Host ist nun auf diesem Computer installiert")

TrayTip($strTrayTitle, "Alles fertig - beende mich.", 15, 1)
Exit

Natürlich macht es nur kompiliert einen Sinn.

Gelesen: 12071 · Heute: 8 · Zuletzt: 24. November 2022

Das könnte dich auch interessieren …

7 Antworten

  1. Snake sagt:

    bitte weiter an timesnake arbeiten: http://timesnake.sourceforge.net/

    • Tobias sagt:

      wtf, im Internet geht echt nichts verloren. Ich wusste nicht mal das dass je bei Sourceforge gelandet ist. oO

      Das waren meine allerersten Gehversuche in C – die mieserabel waren…

      Ist aber definitiv tot dieses Projekt…

  2. Wo wird die Setupdatei aufgerufen, und wie kann ich das Script auch ohne Admin Rechte ausführen, oder brauche ich dazu Admin Rechte für die Teamviewer Setup Datei aber keine Admin Rechte für das Script? Kann mir vlt jemand helfen?

  3. John sagt:

    This is really stupid. Why don’t you just install it with the /S switch???? Check http://www.fasttrackscript.com/teamviewer

  4. Tobias sagt:

    Your comment is stupid. I expect more friendliness from comment authors.

    Obviously cuz the auto-add to the account

    edit: plus, after reading instead of flying over your link, it’s free – unlike your product. I suppose your comment was intented as spam, got me…

  1. 26. April 2014

    […] habe gerade einen Nachfolger für das Script aus dem Beitrag Teamviewer 8 Host Silent Install geschrieben. Dieses Script ist allerdings auf die normale, vollständige Version ausgerichtet […]

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.