[Python] Como tratar caminhos de executáveis de tarefas agendadas?

Discussão em 'Python' iniciado por Stack, Setembro 8, 2025.

  1. Stack

    Stack Membro Participativo

    Estou a construir um projeto e deparei-me com uma problema, eu quero verificar a assinatura digital de um executável que uma determinada tarefa agendada chama. Eu verifico a assinatura digital utilizando o módulo subprocess e uma função do powershell:

    def verificar_assinatura(caminho): if caminho in assinatura_cache: return assinatura_cache[caminho] try: comando = [ "powershell", "-Command", f"(Get-AuthenticodeSignature '{caminho}').StatusMessage" ] resultado = subprocess.run(comando, capture_output=True, text=True) status_message = resultado.stdout.strip() assinatura_cache[caminho] = status_message return status_message

    except (FileNotFoundError, OSError, subprocess.CalledProcessError) as erro:
    assinatura_cache[caminho] = f"Erro ao verificar assinatura {erro}"
    return assinatura_cache[caminho]).


    Mas deparei-me com um problema, certas tarefas agendadas chamas executáveis que contêm argumentos, outros que contêm variáveis de ambiente e por aí fora, a minha pergunta é como poderia tratar esses caminhos de maneira a puder passa-los como argumentos na minha função, e saber o real estado da assinatura.

    Aqui estão alguns exemplos de caminhos que não consigo tratar:

    %localappdata%\Microsoft\OneDrive\OneDriveStandaloneUpdater.exe /reporting; C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe /ua /installsource scheduler; C:\Users\George\AppData\Local\Programs\Opera\autoupdate\opera_autoupdate.exe --scheduledtask --productiscomponent --bypasslauncher --installdir="C:\Users\George\AppData\Local\Programs\Opera\assistant" --producttype=assistant $(Arg0); C:\Users\George\AppData\Local\Programs\Opera\autoupdate\opera_autoupdate.exe --scheduledtask --bypasslauncher $(Arg0); C:\Users\George\AppData\Local\Programs\Opera\autoupdate\opera_autoupdate.exe --scheduledtask --bypasslauncher $(Arg0); "C:\Users\George\AppData\Roaming\Zoom\bin\Zoom.exe" --action=UpdateSchedule; etc..

    Continue reading...

Compartilhe esta Página