Mit powershell TeamViewer QickStart aktualisieren

fr0d

Cadet 1st Year
Registriert
Apr. 2017
Beiträge
13
Das Problem:
Ich betreue den Rechner mit Windows 10 einer älteren Dame; sie kann schlecht hören; sie bringt häufig die Programme in einen Zustand, den sie nicht mehr beherrschen kann; deshalb die Hilfe. Wir wohnen ca. 600 km voneinander getrennt.

Die Betreuung über TeamViewer QuickStart funktioniert und ist ausreichend.

Leider muss TeamViewer QuickStart in nicht voraussehbaren Abständen aktualisiert werden.
Der Versand von TeamViewerQS.exe durch mich per E-Mail funktioniert nicht mehr, weil die Programme ja durcheinander sind und sie den Posteingang nicht findet.

Ich stelle mir folgendes powerschell Script vor:

----
1. Ein eventuell GESTARTETES TeamViewerQS.exe löschen, damit der Neustart nicht behindert wird.

2. TeamViewerQS.exe von
https://download.teamviewer.com/download/TeamViewerQS.exe
herunterladen und auf dem Desktop / Schreibtisch ablegen,
das dort vorhandene TeamViewerQS.exe überschreiben.

3. Das somit aktualisierte TeamViewerQS.exe starten
----

Dieses powershell Script wird in der Taskleiste als startbares Programm eingetragen.
Die Taskleiste ist als immer sichtbar eingestellt.

Leider kann ich dieses Script nicht selbst schreiben, weil ich seit Jahren nicht mehr mit Windows arbeite, sondern Debian benutze.

Vielen Dank für Hilfe
 
Als Linux-Nutzer guck dir im Zweifel chocolatey an. Damit kannst du über die powershell Programme installieren und auch aktuell halten. Wenn du da als Startup-Script für Windows ein Powershell-Scrip mit einem "choco upgrade teamviewer" reinpackst wäre der immer auf Stand. Alternativ ist auch das Teamviewer Quicksupport Paket verfügbar.
 
@Testa2014 und @kamanu

Ich habe leider kein Windows 10 zur Verfügung, deshalb brauche ich das Script um es über TeamViewer auf dem anderen Rechner ohne weitere Abhängigkeiten zu installieren.
 
@fr0d Mein Linux-Nutzer Hinweis bezog sich eher darauf, dass das dann für dich wie gewohnt ist, weil es ähnlich zur Paket-Installation unter Linux funktioniert.
Chocolatey installierst du einmalig auf dem Rechner der Dame. Danach brauchst du nur "choco upgrade teamviewer-qs" in einem Powershell-Script stehen haben. Dieses Script dann in den Autostart von Windows packen. So muss die Dame nix selber aktualisieren. Und du kannst dich über einen stets aktuellen Teamviewer verbinden.
 
PowerShell:
$uri = "https://download.teamviewer.com/download/TeamViewerQS.exe"
$out = (Join-Path (Get-Path .) TeamViewerQS.exe)

Get-Process -Name TeamViewerQS -ErrorAction SilentlyContinue | Stop-Process -Force
(New-Object System.Net.WebClient).DownloadFile($uri, $out)
. .\TeamViewerQS.exe
PowerShell ist "mittlerweile" Cross-Platform, kannst also auch auf Debian damit arbeiten.

https://github.com/PowerShell/PowerShell

Musst nur die Versionen beachten. Windows 10 nutzt standardmäßig nen älteren Build.
Code:
PS > $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.1023
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.1023
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
 
  • Gefällt mir
Reaktionen: kamblars
@Yuuri
Vielen Dank für Dein Script.
Ich komme erst heute dazu es auszuprobieren und zu installieren.
Leider bekomme ich die Fehlermeldung: Get-Path wurde nicht als Name eines Cmdlet, einer Funktion ... erkannt ...
Gibt es noch andere Möglichkeiten oder wie kann ich Cmdlet definieren ?

Oder könnte ich eine neuere Powershell Version installieren?
Welche sollte es sein, wie installiere ich sie?

Windows 10, intel 86, home
 
Zuletzt bearbeitet:
Sorry, nutz stattdessen:
PowerShell:
$uri = "https://download.teamviewer.com/download/TeamViewerQS.exe"
$out = (Join-Path (Get-Item .).FullName TeamViewerQS.exe)

Get-Process -Name TeamViewerQS -ErrorAction SilentlyContinue | Stop-Process -Force
(New-Object System.Net.WebClient).DownloadFile($uri, $out)
. .\TeamViewerQS.exe
fr0d schrieb:
Oder könnte ich eine neuere Powershell Version installieren?
Aktuelle Releases gibts hier: https://github.com/PowerShell/PowerShell

Aber wenn du ein Fremdsystem administrierst, reicht die mitgelieferte Version allemal.
 
Zuletzt bearbeitet:
Danke, hat wunderbar funktioniert.

Ich hätte noch einen Wunsch:
Könnte man noch eine kleine Meldung während des Ablaufs anzeigen, damit der Benutzer nicht meint, es funktioniere nichts?
 
Wenn du ne Progress Bar haben willst, kannst du auch das verwenden:
PowerShell:
$uri = "https://download.teamviewer.com/download/TeamViewerQS.exe"
$out = (Join-Path (Get-Item .).FullName TeamViewerQS.exe)

Get-Process -Name TeamViewerQS -ErrorAction SilentlyContinue | Stop-Process -Force
Import-Module BitsTransfer
Start-BitsTransfer $uri $out
. $out
 
Leider meckert Powershell:
Stop-Process : Der Parameter "InputObject" kann nicht gebunden werden.
Der Wert "Import-Module" vom Typ
"System.String" kann nicht in den Typ "System.Diagnostics.Process"
konvertiert werden.
In C:\Users\margarete\Desktop\aktualisierung-teamviewer.ps1:6 Zeichen:21
  • Stop-Process -Force Import-Module BitsTransfer
  • ~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Stop-Process],
ParameterBindingException
+ FullyQualifiedErrorId :
CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.StopProcessCommand
 
Kopier mal richtig. Zeile 4 und 5 sind bei dir wohl nur eine.
 
Entschuldigung, mein Fehler.

Auf dem Bildschirm sehe ich aber nichts, es wird nur eine Datei "BIT5857.tmp" mit 0 Bytes im Verzeichnis Desktop angelegt und auf dem Bildschirm angezeigt.

Wenn ich das Script durch Doppelklick auf dem Desktop starte, wird nur für einen kurzen Augenblick der blaue Kreis angezeigt, er läuft aber nicht ständig bis das TeamViewer Programm startet.

TeamViewer wird NICHT neu geladen aber die alte Version gestartet.

Edit: 15h26 20.08.2020
 
Zuletzt bearbeitet:
Wie das Programm funktioniert kann ich dir nicht sagen. Es schreibt sich lediglich in %TEMP%\TeamViewer und wird dann darin ausgeführt.

Ggf. wenn du den Pfad vorher manuell löschst:
PowerShell:
$uri = "https://download.teamviewer.com/download/TeamViewerQS.exe"
$out = (Join-Path (Get-Item .).FullName TeamViewerQS.exe)

$teamViewerTempPath = (Join-Path $env:TEMP TeamViewer)
Remove-Item $teamViewerTempPath -Recurse -Force -ErrorAction SilentlyContinue | Out-Null

Get-Process -Name TeamViewerQS -ErrorAction SilentlyContinue | Stop-Process -Force
Import-Module BitsTransfer
Start-BitsTransfer $uri $out
. $out
Aber mehr als das Programm von der URL laden und ausführen kann ich auch nicht.
 
Also folgendes angepasste Skript funktioniert für mich:

PowerShell:
$uri = "https://download.teamviewer.com/download/TeamViewerQS.exe"
$out = Join-Path -Path "$env:USERPROFILE\Desktop" -ChildPath "TeamViewerQS.exe"
# Datei herunterladen, eine existierende Datei wird automatisch überschrieben
Start-BitsTransfer -Source $uri -Destination $out

# Alten Prozess stoppen
Get-Process -Name TeamViewerQS -ErrorAction SilentlyContinue | Stop-Process -Force
# Neuen Prozess starten
$TV = Start-Process -FilePath $out -PassThru

Ein Import-Module von Standardmodulen wird in Powershell seit, ich meine, Version 3 nicht mehr benötigt.
Powershell lädt diese automatisch wenn es auf ein entsprechendes CmdLet stößt.

Was noch manuell passieren muss ist, dass die EULA-Geschichte (was aber nur beim aller ersten Mal vorkommt und daher kein Problem mehr sein sollte) sowie die obligatorische UAC bestätigt werden muss.
 
@Yuuri
Heute um 10:58 Uhr
Ich habe diese Version verwendet.

Nochmals vielen Dank für die Hinweise. Das Gerät ist wieder verpackt und geht morgen zur Post.
(Anders war es leider nicht zu konfigurieren - die Dame ist schon sehr alt.)
 
Zurück
Oben