Piszę usługę Windows w Pythonie i używam modułu kluczy do bezpiecznego przechowywania poświadczeń, które muszę regularnie i uporczywie używać. Oznacza to, że keyring przechowuje hasła przy użyciu poświadczeń użytkownika lokalnego systemu.Błąd 1312 podczas korzystania z Pythona w systemie Windows Server 2003
Wszystko, co robię, to korzystanie z 2 podstawowych funkcji kluczy: get_password(SERVICE_NAME, username, password)
i set_password(SERVICE_NAME, username)
. Nie wstępnie skonfigurowałem breloka, tak jak to rozumiałem, i zobaczyłem, że automatycznie konfiguruje swój backend.
Po uruchomieniu tego w systemie Windows Server 2008 i nowszych wersjach wszystko działa sprawnie. Ale gdy uruchomię to w systemie Windows Server 2003, otrzymuję ten paskudny błąd:
error: (1312, 'CredWrite', 'A specified logon session does not exist. It may already have been terminated.')
Zakładam, że ma coś wspólnego z sesją logowania lokalnego użytkownika systemu, który jest używany do uruchamiania moją służbę, choć jest to osobliwe, ponieważ zrozumiałem, że jest to forma super-super-administratora, która powinna mieć uprawnienia do robienia wszystkiego, co chce w systemie. Ale gdy zmienię poświadczenia logowania użytkownika na lokalnego administratora, wszystko działa sprawnie.
Czy jest coś, co muszę zmienić w konfiguracji mojej usługi, aby to działało? Lub zmienić zasady bezpieczeństwa lokalnego użytkownika systemu? A może powinienem poprosić użytkowników o uruchomienie tej usługi z poświadczeniami lokalnego administratora?
Cześć Avihu, to jest najbliższa rzecz, którą znalazłem dla mojego problemu. Używam golang. Kiedy uruchamiam program go w systemie Windows lokalnie, działa dobrze. Ale kiedy przychodzę do serwera cygwin z innego systemu i uruchamiam program, daje to dokładny problem, przed którym stoisz. Czy możesz skierować mnie we właściwym kierunku, co może być problemem? Zapytałem o questio tutaj: https://serverfault.com/questions/884269/a-specified-logon-session-does-not-exist-it-may-already-have-been-terminated-o – pinkpanther