authority nt\system
https://ibb.co/iwCjWp (Non so perché l'immagine non venga visualizzata essendo racchiusa nel tag [img])
Quindi in quel cmd.exe sei "Sistema locale" (è il vero account root su Windows). Ora devi solo eseguire la stessa riga di comando che hai inserito nel tuoempbilly ha scritto: ↑27 set 2018 - 17:12 Ho fatto i test e quando eseguo un cmd tramite psexec il risultato è quello mostrato nell'immagine sottostante.
authority nt\system
https://ibb.co/iwCjWp (Non so perché l'immagine non venga visualizzata essendo nel tag [img])
Codice: Seleziona tutto
setup.pyCodice: Seleziona tutto
C:\ProgramData\{5F3A4BBA-1519-45F2-9BF7-1E9924E32CAA}>"Surfer(11.1.719)_Installer.exe" REMOVE=TRUE MODIFY=FALSE UNINSTALL=TRUE /sSolo dopo aver premuto OK la disinstallazione prosegue.C:\Windows\system32\config\systemprofile\Desktop si riferisce a una posizione non disponibile. Potrebbe trovarsi su un disco rigido di questi computer o su una rete. Assicurati che il disco sia inserito correttamente o che tu sia connesso a Internet o alla rete e riprova. Se ancora non riesci a trovarlo, le informazioni potrebbero essere state spostate in un'altra posizione.
Che ne dici di creare una cartella vuota C:\Windows\system32\config\systemprofile\Desktop nello script di installazione?empbilly ha scritto: ↑27 settembre 2018 - 21:18C:\Windows\system32\config\systemprofile\Desktop si riferisce a una posizione non disponibile. Potrebbe trovarsi su un disco rigido di questi computer o su una rete. Assicurati che il disco sia inserito correttamente o che tu sia connesso a Internet o alla rete e riprova. Se ancora non riesci a trovarlo, le informazioni potrebbero essere state spostate in un'altra posizione.
Come ha detto Vincent in precedenza, creare in anticipo la cartella C:\Windows\system32\config\systemprofile\Desktop probabilmente risolverà il problema. Lo script di disinstallazione probabilmente tenta di rimuovere un'icona copiata durante l'installazione per fare un po' di pulizia, ma fallisce miseramente perché l'utente "Sistema locale" non ha una cartella del genere (C:\Windows\system32\config\systemprofile\ è il valore di %USERPROFILE% per "Sistema locale"). E questo spiega perché funzionava quando lo faceva in un contesto utente.empbilly ha scritto: ↑27 settembre 2018 - 21:18 Ho contattato l'azienda che ha sviluppato il software e mi è stata fornita un'altra variabile da rimuovere silenziosamente.
Quando si esegue questo comando in cmd tramite psexec.exe, un'altra finestra mostra che non è stato trovato alcun file o cartella.Codice: Seleziona tutto
C:\ProgramData\{5F3A4BBA-1519-45F2-9BF7-1E9924E32CAA}>"Surfer(11.1.719)_Installer.exe" REMOVE=TRUE MODIFY=FALSE UNINSTALL=TRUE /s
Nella finestra viene visualizzato il messaggio seguente:Solo dopo aver premuto OK la disinstallazione prosegue.C:\Windows\system32\config\systemprofile\Desktop si riferisce a una posizione non disponibile. Potrebbe trovarsi su un disco rigido di questi computer o su una rete. Assicurati che il disco sia inserito correttamente o che tu sia connesso a Internet o alla rete e riprova. Se ancora non riesci a trovarlo, le informazioni potrebbero essere state spostate in un'altra posizione.
Il percorso C:\Windows\system32\config\systemprofile esiste, ma "Desktop" no.
Esiste un modo per simulare il clic OK?
Codice: Seleziona tutto
psexec -i -s cmd.exeCodice: Seleziona tutto
# -*- 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)