Seite 1 von 1

Manipulation von Benutzerprofilen

Veröffentlicht: 15. Dez. 2020 - 13:54 Uhr
von Cyrilg
Hallo,
ich versuche, ein Firefox-Update von Version 52.9esr auf Firefox 68.9esr zu installieren.
Das Problem ist, dass dieses Versions-Upgrade ein neues Standardbenutzerprofil erstellt.
Ich möchte die Datei C:\Users\Benutzername\AppData\Roaming\Mozilla\Firefox\profiles.ini während der Installation in einen anderen Ordner (in meinem Beispiel C:\temp) sichern und sie nach Abschluss der Installation wieder an ihren ursprünglichen Speicherort zurückspielen, um den Zugriff auf das Benutzerprofil (mit Lesezeichen, Passwörtern usw.) zu behalten.

Dazu habe ich Folgendes: `
from setuphelpers import *

uninstallkey = []

def install():
#Kopieren der profiles.ini-Datei von AppData nach c:\Temp
print('Speichere die profiles.ini-Datei')
filecopyto(user_appdata()+'\Mozilla\Firefox\profiles.ini','c:\Temp')

#Beenden des Firefox.exe-Prozesses
print('Schließe Firefox')
killalltasks("firefox.exe")

#Aktualisieren auf Firefox 68.9.0esr (32-Bit)
print('Aktualisiere auf Firefox 68.9.0esr (32-Bit)')
install_exe_if_needed("Firefox Setup 68.9.0esr.exe",'/s',key='')

.....

Alles läuft gut, wenn ich meine Installation von PyScripter auf meinem Entwicklungsrechner (mit Windows 10 Pro) ausführe; Die Datei profiles.ini wird korrekt von C:\Users\Benutzername\AppData\Roaming\Mozilla\Firefox\ nach C:\Temp kopiert.

Wenn ich die Installation meines Pakets über die Konsole auf einem anderen Rechner (Debian 9 Server, Wapt 1.7.4) starte, erhalte ich folgenden Installationsfehler:
IOError: [Errno 2] Datei oder Verzeichnis nicht gefunden: u'C:\\Windows\\system32\\config\\systemprofile\\AppData\\Roaming\\Mozilla\\Firefox\\profiles.ini'.

Die Datei profiles.ini wird am falschen Ort gesucht.

Ich habe verschiedene Ansätze versucht, unter anderem die Verwendung von `
from os import path

appdatapath = path.expandvars('%APPDATA%')
filecopyto(appdatapath+'\Mozilla\Firefox\profiles.ini','c:\Temp')`

, aber das Problem besteht weiterhin: Das Paket funktioniert lokal auf dem Entwicklungsrechner mit PyScripter einwandfrei, aber ich erhalte denselben Fehler, wenn ich versuche, es über die Konsole auf einem anderen Testrechner zu installieren.

Mir ist ein wichtiger Punkt entgangen: Warum sucht mein Skript die Datei am richtigen Ort, wenn ich über PyScripter installiere, und dann in `C:\Windows\system32\config\systemprofile\AppData\Roaming\Mozilla\Firefox`, wenn ich über die Konsole installiere?

Vielen Dank im Voraus für Ihre Hilfe.
Mit freundlichen Grüßen,
Cyril G

Betreff: Manipulation von Benutzerprofilen

Veröffentlicht: 17. Dez. 2020 - 14:32 Uhr
von Aedenth
Hallo,

wenn Sie Ihr Paket mit PyScripter testen, erfolgt die Installation im Kontext Ihres Benutzerkontos.

Führen Sie die Installation auf einem anderen Rechner aus, wird sie als SYSTEM-Benutzer durchgeführt, der kein herkömmliches Benutzerprofil besitzt.

Falls auf dem Rechner nur ein Benutzer angemeldet ist, müssen Sie den Namen des zuletzt angemeldeten Benutzerprofils ermitteln und anhand dieser Information den korrekten Pfad zu C:\users\ erstellen.

Ich bin mir nicht sicher, ob WAPT eine Funktion zum Abrufen des zuletzt authentifizierten Benutzers auf einem Rechner bietet.
Prüfen Sie die WAPT-Dokumentation; andernfalls muss ein Registrierungsschlüssel diese Information enthalten.

Betreff: Manipulation von Benutzerprofilen

Veröffentlicht: 17. Dez. 2020 - 14:44 Uhr
von htouvet
in setuphelpers:

Code: Alle auswählen

get_last_logged_on_user()
-> gibt meineDomäne\Benutzer zurück

für einen lokalen Benutzer

.\Benutzer

Auch

Code: Alle auswählen

get_loggedinusers()
gibt eine Liste ['user'] zurück

Liste der Maschinenprofile:

Code: Alle auswählen

 local_users_profiles()
['C:\\Windows\\ServiceProfiles\\LocalService',
 'C:\\Windows\\ServiceProfiles\\NetworkService',
 'C:\\Users\\htouvet',
 'C:\\Users\\user1']