Seite 2 von 2

Betreff: Die Syntax für den Dateinamen ist falsch

Veröffentlicht: 27. September 2018 – 17:12 Uhr
von Empbilly
Ich habe die Tests durchgeführt, und wenn ich einen Befehl über psexec ausführe, sieht es wie im folgenden Bild aus:

authority nt\system

Bild

https://ibb.co/iwCjWp (Ich weiß nicht, warum das Bild nicht angezeigt wird, obwohl es sich im [img]-Tag befindet.)

Betreff: Die Syntax für den Dateinamen ist falsch

Veröffentlicht: 27. September 2018 – 17:48 Uhr
von dcardon
Hallo Elias,
empfilly schrieb: 27. Sep. 2018 - 17:12 Uhr. Ich habe die Tests durchgeführt, und wenn ich einen Befehl über psexec ausführe, sieht es wie im folgenden Bild aus:

authority nt\system

Bild

https://ibb.co/iwCjWp (Ich weiß nicht, warum das Bild nicht angezeigt wird, obwohl es sich im [img]-Tag befindet.)
In der cmd.exe sind Sie also als „Lokales System“ angemeldet (das ist das eigentliche Root-Konto unter Windows). Jetzt müssen Sie nur noch dieselbe Befehlszeile ausführen, die Sie zuvor in Ihre Konfiguration eingegeben haben

Code: Alle auswählen

setup.py
Datei und prüfen Sie, ob sie ordnungsgemäß ausgeführt wird.

Denis

Betreff: Die Syntax für den Dateinamen ist falsch

Veröffentlicht: 27. September 2018 - 21:18 Uhr
von Empbilly
dcardon,

Ich habe mich mit dem Unternehmen, das die Software entwickelt hat, in Verbindung gesetzt und eine weitere Variable erhalten, die ich stillschweigend entfernen kann.

Code: Alle auswählen

C:\ProgramData\{5F3A4BBA-1519-45F2-9BF7-1E9924E32CAA}>"Surfer(11.1.719)_Installer.exe" REMOVE=TRUE MODIFY=FALSE UNINSTALL=TRUE /s
Bei der Ausführung dieses Befehls in der Eingabeaufforderung über psexec.exe erscheint ein weiteres Fenster mit der Meldung, dass keine Datei oder kein Ordner gefunden wurde.

Das Fenster zeigt folgende Meldung an:
Der Pfad C:\Windows\system32\config\systemprofile\Desktop ist nicht verfügbar. Die Datei befindet sich möglicherweise auf der Festplatte des Computers oder in einem Netzwerk. Stellen Sie sicher, dass die Festplatte korrekt eingelegt ist und Sie mit dem Internet oder dem Netzwerk verbunden sind, und versuchen Sie es erneut. Falls die Datei weiterhin nicht gefunden werden kann, wurden die Daten möglicherweise an einen anderen Speicherort verschoben.
Erst nachdem ich auf OK klicke, wird die Deinstallation fortgesetzt.

Der Pfad C:\Windows\system32\config\systemprofile existiert, aber "Desktop" nicht.

Gibt es eine Möglichkeit, einen OK-Klick zu simulieren?

Betreff: Die Syntax für den Dateinamen ist falsch

Veröffentlicht: 28. September 2018 – 15:07 Uhr
von vcardon
embilly schrieb: 27. September 2018 - 21:18 Uhr
Der Pfad C:\Windows\system32\config\systemprofile\Desktop ist nicht verfügbar. Die Datei befindet sich möglicherweise auf der Festplatte des Computers oder in einem Netzwerk. Stellen Sie sicher, dass die Festplatte korrekt eingelegt ist und Sie mit dem Internet oder dem Netzwerk verbunden sind, und versuchen Sie es erneut. Falls die Datei weiterhin nicht gefunden werden kann, wurden die Daten möglicherweise an einen anderen Speicherort verschoben.
Wie wäre es, wenn Sie in Ihrem Installationsskript einen leeren Ordner C:\Windows\system32\config\systemprofile\Desktop erstellen?

Wenn Ihr Software-Deinstallationsskript eine Datei oder einen Ordner entfernen möchte und abstürzt, weil es die Datei nicht findet, warum erstellen Sie sie dann nicht einfach?.

WAPT ist oft nützlich, um Probleme mit Installations-/Deinstallationsskripten kommerzieller Software zu beheben.

Vincent

Betreff: Die Syntax für den Dateinamen ist falsch

Veröffentlicht: 28. September 2018 – 15:24 Uhr
von dcardon
Hallo Elias,
embilly schrieb: 27. September 2018 - 21:18 Uhr Ich habe mich mit dem Unternehmen, das die Software entwickelt hat, in Verbindung gesetzt und eine weitere Variable erhalten, die ich stillschweigend entfernen kann.

Code: Alle auswählen

C:\ProgramData\{5F3A4BBA-1519-45F2-9BF7-1E9924E32CAA}>"Surfer(11.1.719)_Installer.exe" REMOVE=TRUE MODIFY=FALSE UNINSTALL=TRUE /s
Bei der Ausführung dieses Befehls in der Eingabeaufforderung über psexec.exe erscheint ein weiteres Fenster mit der Meldung, dass keine Datei oder kein Ordner gefunden wurde.

Das Fenster zeigt folgende Meldung an:
Der Pfad C:\Windows\system32\config\systemprofile\Desktop ist nicht verfügbar. Die Datei befindet sich möglicherweise auf der Festplatte des Computers oder in einem Netzwerk. Stellen Sie sicher, dass die Festplatte korrekt eingelegt ist und Sie mit dem Internet oder dem Netzwerk verbunden sind, und versuchen Sie es erneut. Falls die Datei weiterhin nicht gefunden werden kann, wurden die Daten möglicherweise an einen anderen Speicherort verschoben.
Erst nachdem ich auf OK klicke, wird die Deinstallation fortgesetzt.

Der Pfad C:\Windows\system32\config\systemprofile existiert, aber "Desktop" nicht.

Gibt es eine Möglichkeit, einen OK-Klick zu simulieren?
Wie Vincent bereits erwähnte, dürfte das vorherige Erstellen des Ordners C:\Windows\system32\config\systemprofile\Desktop das Problem beheben. Das Deinstallationsskript versucht vermutlich, ein während der Installation kopiertes Symbol zu entfernen, um Bereinigungen durchzuführen. Dies schlägt jedoch fehl, da der Benutzer „Lokales System“ keinen solchen Ordner besitzt (C:\Windows\system32\config\systemprofile\ ist der Wert von %USERPROFILE% für „Lokales System“). Dies erklärt auch, warum es im Benutzerkontext funktionierte.

In Ihrem Fall schlug die Deinstallation fehl, weil das Popup-Fenster im nicht sichtbaren Grafikpuffer von „Lokales System“ angezeigt wurde.

Jetzt verstehen Sie, warum man

Code: Alle auswählen

psexec -i -s cmd.exe
ist eine gute Möglichkeit, das Verhalten des Installationsprogramms zu überprüfen.

Am besten wäre es, wenn der Entwickler sein Installations-/Deinstallationsskript korrigieren würde!

Prost,

Denis

Betreff: Die Syntax für den Dateinamen ist falsch

Veröffentlicht: 28. September 2018 – 19:29 Uhr
von Empbilly
Hallo vcardon und dcardon!! Vielen Dank für die ganze Hilfe!!!

Es funktioniert!!! :D

Ich hatte nicht daran gedacht, den Ordner anzulegen, um ihn später wieder zu löschen. 8-)

Das endgültige Drehbuch:

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *
import os

uninstallkey = []

destdir = makepath(programfiles, "Golden Software", "Surfer 11")
exefile = "Surfer.exe"
inidir = "%s\\AppData\\Gradient.ini" % destdir
pstools = makepath(programfiles, "mspstools")

error_env = os.environ['WINDIR']
error_path = r'%s\system32\config\systemprofile\Desktop' % error_env

def install():
    if not os.path.isdir(error_path):
        os.makedirs(error_path)
    if os.path.exists(error_path):
        print("%s was success created!" % error_path)
    print('Uninstalling old versions of surfer...')
    for soft in installed_softwares("Surfer"):
        try:
            cmd = WAPT.uninstall_cmd(soft['key'])
            if isinstance(cmd,list) and len(cmd) == 1:
                cmd = cmd[0]
                if destdir and not 'UNINSTALL=YES' in cmd:
                    cmd = cmd + ' UNINSTALL=YES' + ' /s'
                    run(cmd)
            else:
                if not destdir and 'UNINSTALL=YES' in cmd:
                    run(cmd)
        except ValueError:
            pass
    print('Uninstalling old versions of Surfer completed!')
    print('Installing Surfer...')
    install_msi_if_needed('surfer.msi')
    if os.path.exists(destdir):
        filecopyto("Gradient.ini", "%s\\AppData" % destdir)
    if os.path.exists(inidir):
        print("Gradient.ini copied to the folder %s\\AppData" % destdir)
Falls Sie Verbesserungsvorschläge zum Skript haben, wäre ich Ihnen dankbar. Ich programmiere in Python und bin mir der Best Practices noch nicht ganz bewusst. Vielen Dank!