Nach einer erfolgreichen Einrichtung schloss er nur das Fenster, und danach
passierte nichts mehr: Der Dienst lief nicht, kein Fenster ging auf. Der
Commander hat Rippy anschliessend selbst gestartet ("das tool selbst laesst
sich starten") -- was den Fehler verdeckt hat.
Ein Knopf, der etwas anderes tut als seine Beschriftung sagt, ist schlimmer
als keiner. Jetzt startet main() nach einem geglueckten Assistenten das
installierte Programm.
Dazu der zweite Teil des Netzlaufwerk-Befunds: Auch Netz-ANMELDUNGEN haengen
am Token der Sitzung, nicht nur die Laufwerksbuchstaben. Ein erhoehter Prozess
kennt die Zugangsdaten zur Freigabe nicht und bekommt "Zugriff verweigert" --
also dieselbe Meldung wie bei einem echten Rechteproblem. Ein UNC-Pfad mit
Administratorrechten wird jetzt als solcher erkannt und erklaert.
Ampel lokal: 705 gruen, ruff sauber.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
6dfff5c99d
commit
082e8b8b55
@@ -231,6 +231,17 @@ def pruefe_schreibrecht(ziel: str, probe=None, erhoeht=None) -> dict:
|
||||
("Statt des Laufwerksbuchstabens den UNC-Pfad eintragen "
|
||||
"(\\\\Server\\Freigabe)." + zusatz))
|
||||
|
||||
if (ziel or "").startswith("\\\\") and laeuft_erhoeht(erhoeht):
|
||||
# Auch Netz-ANMELDUNGEN hängen am Token der Sitzung, nicht nur die
|
||||
# Laufwerksbuchstaben. Ein erhöhter Prozess kennt die Zugangsdaten
|
||||
# zur Freigabe deshalb nicht und bekommt „Zugriff verweigert" —
|
||||
# dieselbe Meldung wie bei einem echten Rechteproblem.
|
||||
return _eintrag(
|
||||
"Schreibrecht", FEHLER, "%s (%s)" % (ziel, grund),
|
||||
"Als Administrator gestartete Programme kennen die Anmeldung an "
|
||||
"der Freigabe nicht. Rippy ohne Administrator starten — dann "
|
||||
"geht der Netzwerkpfad.")
|
||||
|
||||
if _unter_programme(ziel):
|
||||
return _eintrag(
|
||||
"Schreibrecht", FEHLER, "%s (%s)" % (ziel, grund),
|
||||
|
||||
@@ -239,3 +239,25 @@ def test_vorgaben_sind_vollstaendig():
|
||||
assert v["port"] == 7788
|
||||
assert v["ziel"] and v["ablage"]
|
||||
assert "/app/" not in v["ablage"], "Container-Pfad in einer Windows-Vorgabe"
|
||||
|
||||
|
||||
def test_netzwerkpfad_als_administrator_wird_erklaert():
|
||||
"""Der zweite Teil des Befunds: Auch Netz-ANMELDUNGEN haengen am Token
|
||||
der Sitzung. Ein erhoehter Prozess kennt die Zugangsdaten zur Freigabe
|
||||
nicht und bekommt 'Zugriff verweigert' -- dieselbe Meldung wie bei einem
|
||||
echten Rechteproblem."""
|
||||
B = chr(92)
|
||||
befund = e.pruefe_schreibrecht(
|
||||
B + B + "NAS" + B + "Filme", probe=(False, "Zugriff verweigert"),
|
||||
erhoeht=True)
|
||||
assert befund["zustand"] == e.FEHLER
|
||||
assert "ohne Administrator" in befund["abhilfe"]
|
||||
|
||||
|
||||
def test_netzwerkpfad_ohne_administrator_bekommt_die_normale_meldung():
|
||||
B = chr(92)
|
||||
befund = e.pruefe_schreibrecht(
|
||||
B + B + "NAS" + B + "Filme", probe=(False, "Netzwerkpfad nicht gefunden"),
|
||||
erhoeht=False)
|
||||
assert befund["zustand"] == e.FEHLER
|
||||
assert "Administrator" not in befund["abhilfe"] or "keine" in befund["abhilfe"]
|
||||
|
||||
@@ -649,6 +649,17 @@ def main(argv=None) -> int:
|
||||
if "--still" not in argv and "--ohne-assistent" not in argv:
|
||||
ergebnis = assistent_starten()
|
||||
if ergebnis.get("ok"):
|
||||
# ⚠️ Und jetzt Rippy auch WIRKLICH starten.
|
||||
#
|
||||
# Der Knopf am Ende des Assistenten heisst „Rippy oeffnen". Bis
|
||||
# hierher schloss er nur das Fenster, und danach passierte nichts
|
||||
# mehr: Der Dienst lief nicht, kein Fenster ging auf. Ein Knopf,
|
||||
# der etwas anderes tut als sein Beschriftung sagt, ist schlimmer
|
||||
# als keiner.
|
||||
programm = os.path.join(ergebnis.get("ziel") or
|
||||
reg.standard_installationsordner(),
|
||||
"Rippy.exe")
|
||||
starte_fensterprozess(programm)
|
||||
return 0
|
||||
if ergebnis.get("abgebrochen"):
|
||||
melden("Abgebrochen — es wurde nichts veraendert.")
|
||||
|
||||
Reference in New Issue
Block a user