Update: »SyncVault kann nicht geschlossen werden«
Das Setup will eine ältere SyncVault-Version ersetzen, kann sie aber nicht beenden. Diese Anleitung zeigt, wie Sie die alte Version von Hand stoppen, mit Befehlen für die Eingabeaufforderung (cmd) und für PowerShell. Danach läuft das Update normal weiter.
01 Die Meldung
Das Setup zeigt »SyncVault kann nicht geschlossen werden. Schließ es bitte manuell und klicke auf ›Wiederholen‹, um fortzufahren« mit den Schaltflächen »Wiederholen« und »Abbrechen«.
- Lassen Sie diese Meldung offen. Sie brauchen sie am Ende für »Wiederholen«.
- Nennt die Meldung Programme (»Noch aktiv«), läuft noch etwas aus dem SyncVault-Programmordner. Weiter mit Schritt 3.
- Nennt die Meldung Dateien (»in einem anderen Programm geöffnet«), hält ein fremdes Programm eine Datei von SyncVault offen. Weiter mit Schritt 6.
- Nennt die Meldung weder Programme noch Dateien, kommt sie von der Deinstallation der alten Version, die das Setup im Hintergrund aufruft. Sie ist fünfmal gescheitert. Prüfen Sie kurz mit Schritt 3 bis 6, ob noch etwas läuft oder blockiert. Ist alles frei, hilft Schritt 7.
02 Häufige Ursachen
- SyncVault läuft in einer anderen Anmeldung. Auf einem Server oder Terminalserver haben oft mehrere Benutzer eine Remotedesktop-Sitzung offen, auch getrennte Sitzungen. In jeder kann SyncVault im Infobereich laufen. Das Setup sieht diese Programme, kann sie aber nicht immer beenden.
- Der SyncVault-Dienst hält nicht an. Hängt der Dienst beim Beenden, bleibt sein Programm im Speicher und hält Dateien im Programmordner fest.
- Ein anderes Programm hat eine Datei geöffnet, zum Beispiel ein Virenscanner, ein Sicherungs- oder Synchronisierungsprogramm oder ein Explorer-Fenster im Programmordner.
03 Vorbereiten
- Prüfen Sie, ob gerade eine Sicherung läuft. Warten Sie, bis sie fertig ist, wenn möglich. Ein abgebrochener Lauf erscheint nach dem Update als Fehler im Verlauf. Starten Sie diesen Job dann einmal von Hand.
- Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator: Startmenü,
cmdoderPowerShelleingeben, Rechtsklick, »Als Administrator ausführen«. Ohne Administratorrechte können Sie Programme anderer Benutzer nicht beenden. - Die Befehle gehen vom Standard-Programmordner
C:\Program Files\SyncVaultaus. Haben Sie SyncVault woanders installiert, ersetzen Sie den Pfad. Den Ordner nennt dieser PowerShell-Befehl:
Get-ItemProperty 'HKLM:\SOFTWARE\9374afa5*' | Select-Object InstallLocation
Sie brauchen nur einen der beiden folgenden Wege: cmd oder PowerShell.
04 Alte Version beenden mit cmd
1. Dienst anhalten (falls vorhanden)
Der Windows-Dienst heißt syncvault.exe, nicht »SyncVault«.
rem Gibt es den Dienst, und läuft er? sc queryex syncvault.exe rem Dienst anhalten net stop syncvault.exe
Der angegebene Dienst ist kein installierter Dienst(Fehler 1060): SyncVault läuft ohne Dienst. Weiter mit Punkt 2.- Steht in der Statuszeile
STOPPED, ist der Dienst angehalten. Weiter mit Punkt 2. - Hängt
net stoplänger als eine Minute oder steht nachsc queryexweiterSTOP_PENDING: Beenden Sie den Dienst über seine Prozess-ID. Die Zahl steht beisc queryexin der ZeilePID.
rem 1234 durch die PID aus "sc queryex" ersetzen
taskkill /f /pid 1234
2. Programme in allen Sitzungen finden
rem Alle SyncVault-Prozesse mit Benutzer und Sitzung tasklist /v /fi "imagename eq SyncVault.exe" rem Wer ist angemeldet? (auch getrennte Sitzungen) query user
In der Spalte »Benutzername« sehen Sie, in wessen Anmeldung SyncVault noch läuft.
3. Programme beenden
rem Beendet SyncVault in allen Sitzungen, das Setup bleibt offen
taskkill /f /im SyncVault.exe
Das Setup heißt SyncVault Setup 0.10.8.exe und wird von diesem Befehl nicht beendet.
4. Prüfen
tasklist /fi "imagename eq SyncVault.exe" netstat -ano | findstr :7432
Erwartet: tasklist meldet mit INFORMATION:, dass keine Aufgaben laufen, und netstat gibt nichts aus. Zeigt netstat noch eine Zeile mit LISTENING, steht ganz rechts die PID des Programms, das den SyncVault-Port 7432 belegt. Beenden Sie es mit taskkill /f /pid <PID>.
Weiter mit Schritt 8.
05 Alte Version beenden mit PowerShell
1. Dienst anhalten (falls vorhanden)
# Gibt es den Dienst, und läuft er? Get-Service syncvault.exe # Dienst anhalten Stop-Service syncvault.exe -Force
Meldet Get-Service »Es wurde kein Dienst … gefunden«, läuft SyncVault ohne Dienst. Weiter mit Punkt 2. Hängt Stop-Service, beenden Sie den Dienstprozess direkt:
$svc = Get-CimInstance Win32_Service -Filter "Name='syncvault.exe'" Stop-Process -Id $svc.ProcessId -Force
2. Programme in allen Sitzungen finden
Dieser Befehl zeigt jedes Programm, das aus dem SyncVault-Programmordner läuft, mit Sitzung und Pfad. Anders als Get-Process sieht er auch Programme anderer Benutzer.
Get-CimInstance Win32_Process |
Where-Object { $_.ExecutablePath -like 'C:\Program Files\SyncVault\*' } |
Select-Object ProcessId, Name, SessionId, ExecutablePath
3. Programme beenden
Get-CimInstance Win32_Process |
Where-Object { $_.ExecutablePath -like 'C:\Program Files\SyncVault\*' } |
ForEach-Object { Stop-Process -Id $_.ProcessId -Force }
Der Befehl trifft nur Programme aus dem Programmordner. Das Setup läuft aus Ihrem Download-Ordner und bleibt offen.
4. Prüfen
# Muss leer bleiben Get-CimInstance Win32_Process | Where-Object { $_.ExecutablePath -like 'C:\Program Files\SyncVault\*' } # Belegt noch etwas den SyncVault-Port 7432? Get-NetTCPConnection -LocalPort 7432 -State Listen -ErrorAction SilentlyContinue
Zeigt der letzte Befehl eine Zeile, steht in OwningProcess die PID. Beenden Sie das Programm mit Stop-Process -Id <PID> -Force.
Weiter mit Schritt 8.
06 Eine Datei ist von außen geöffnet
Läuft nichts mehr aus dem Programmordner und die Meldung kommt trotzdem, hält ein anderes Programm eine Datei darin offen. Beim Update verschiebt die alte Deinstallation jede Datei und jeden Ordner aus dem Programmordner. Dieser PowerShell-Befehl macht denselben Test: Er benennt jeden Eintrag kurz um und sofort wieder zurück. Führen Sie ihn nur aus, wenn kein SyncVault-Programm mehr läuft (Schritt 4 oder 5).
Get-ChildItem 'C:\Program Files\SyncVault' -Recurse | Sort-Object FullName -Descending | ForEach-Object {
$n = $_.Name; $p = $_.FullName
try {
Rename-Item -LiteralPath $p -NewName "$n.svt" -ErrorAction Stop
Rename-Item -LiteralPath "$p.svt" -NewName $n -ErrorAction Stop
} catch { "BLOCKIERT: $p" }
}
Die erste Zeile mit BLOCKIERT: ist die eigentliche Ursache. Darüberliegende Ordner sind nur blockiert, weil sie diesen Eintrag enthalten. Bleibt die Ausgabe leer, ist nichts blockiert.
Welches Programm die Datei hält, zeigt der Ressourcenmonitor:
- Startmenü,
resmoneingeben, öffnen. - Registerkarte »CPU«, Bereich »Zugeordnete Handles« aufklappen.
- Im Suchfeld
SyncVaulteingeben. - Das Programm in der Liste schließen, das eine Datei aus
C:\Program Files\SyncVaultgeöffnet hat. Das SyncVault-Setup selbst nicht schließen.
Typische Kandidaten sind ein Virenscanner, ein Sicherungs- oder Synchronisierungsprogramm, das den Programmordner mitsichert, und ein Explorer-Fenster, das im Programmordner steht. Für den Virenscanner reicht oft, ein paar Sekunden zu warten.
07 Meldung nennt nichts: alte Version von Hand deinstallieren
Läuft nichts mehr, ist nichts blockiert und die Meldung kommt trotzdem, steigt die alte Deinstallation aus einem anderen Grund aus. Das Setup ruft sie unsichtbar auf und sieht nur, dass sie fehlschlägt. Dann deinstallieren Sie die alte Version von Hand und installieren die neue frisch. Ihre Jobs und Einstellungen bleiben erhalten.
- Klicken Sie in der Meldung des Setups auf »Abbrechen«. Die alte Installation bleibt unverändert.
- Sichern Sie zur Vorsicht Ihre Daten (cmd):
xcopy "%APPDATA%\SyncVault" "%USERPROFILE%\Desktop\SyncVault-Sicherung\" /E /I
Läuft SyncVault als Windows-Dienst, liegen die Daten in %ProgramData%\SyncVault. Sichern Sie dann diesen Ordner.
- Starten Sie die Deinstallation der alten Version sichtbar (cmd):
"C:\Program Files\SyncVault\Uninstall SyncVault.exe"
- Setzen Sie das Häkchen »Auch alle Einstellungen und Daten entfernen« nicht. Es ist standardmäßig aus.
- Ist die Deinstallation fertig, starten Sie das Setup der neuen Version erneut. Es installiert jetzt ohne den Umweg über die alte Deinstallation.
- Starten Sie SyncVault und prüfen Sie, ob Ihre Jobs da sind. Lassen Sie einen Job einmal von Hand laufen.
C:\Program Files\SyncVault.setup-log\setup.log. Dort steht, welche Datei oder welches Programm im Weg war. Öffnen Sie es mit dem Editor, bevor Sie von Hand deinstallieren.08 Update abschließen
- Klicken Sie in der Meldung des Setups auf »Wiederholen«. Das Setup prüft erneut und installiert die neue Version.
- Mit Windows-Dienst: Prüfen Sie nach dem Update, ob der Dienst läuft. Haben Sie ihn angehalten, bevor das Setup gestartet war, startet das Setup ihn nicht von selbst wieder.
rem cmd: Status prüfen und bei Bedarf starten
sc query syncvault.exe
net start syncvault.exe
- Ohne Windows-Dienst: Starten Sie SyncVault über das Startmenü. Auf einem Server mit mehreren Anmeldungen startet es bei jedem Benutzer beim nächsten Anmelden, wenn der Autostart eingeschaltet ist.
- Öffnen Sie in SyncVault den Verlauf. Starten Sie jeden Job von Hand, der während des Updates lief oder fällig war, und prüfen Sie, ob die Dateien im Ziel ankommen.
09 Es klappt nicht
Kommt die Meldung nach diesen Schritten weiter, schicken Sie uns bitte (Kontakt im Impressum):
- einen Screenshot der Meldung und, falls Sie danach »Abbrechen« geklickt haben, der Meldung, die darauf folgt,
- die Ausgabe von
tasklist /v /fi "imagename eq SyncVault.exe"undsc queryex syncvault.exe, - die Versionsnummer der alten und der neuen Version.
- ab Version 0.10.6 die Datei
C:\Program Files\SyncVault.setup-log\setup.log.
Hintergründe zu dieser Meldung und zu den Änderungen am Setup stehen im Blogbeitrag Netzlaufwerke und »SyncVault kann nicht geschlossen werden«.