Самое простое поддерживаемое решение - хранить где-нибудь еще одну копию пароля, возможно, используя CryptProtectData и CryptUnprotectData .
Возможно, вы сможете получить парольиспользуется менеджером сервиса с использованием LsaRetrievePrivateData .По-видимому, имя секрета - это имя службы (примечание: внутреннее имя службы, указанное lpServiceName в CreateService, а не отображаемое имя службы).Не ясно, в каком контексте безопасности вы должны быть для этого.Даже если это работает, этот метод не поддерживается.
Или вы можете установить диспетчер учетных данных для захвата пароля при запуске службы.IIRC, эта установка требует перезагрузки.