Você pode fazer isso usando tarefas agendadas.
Use o gatilho On connection to user session para executar um script em lote contendo NET START [Service Name]
Use o gatilho On disconnect from user session para executar um script em lote contendo NET STOP [Service Name]
Mais informações sobre os acionadores aqui: link
Você deve ser capaz de definir as tarefas para serem executadas em uma conta que tenha permissões para iniciar / parar serviços, para que você não precise elevar os privilégios de seu usuário.
EDITAR OS SEGUINTES COMENTÁRIOS E ATUALIZAR A PERGUNTA:
Use o gatilho At log on para executar NET com START [Service Name] como o parâmetro
Use o gatilho On an event (configurações personalizadas, ID do evento 4647, logoff iniciado pelo usuário, para o usuário) para executar NET com STOP [Service Name] como o parâmetro