Existem duas opções aqui.
Modificando o código fonte
Modificar o código fonte é possível. Tudo o que você precisa fazer é garantir que o programa exija um parâmetro. Se não estiver presente, nada acontece. Um usuário irá clicar duas vezes no exe, que não envia um parâmetro. Você pode até mesmo fazer um popup dizendo: Este programa deve ser agendado, ou algo assim.
Isso pode ser feito usando GetCommandlineArgs .
A desvantagem disso é que, se por algum motivo alguém esquecer o argumento secreto da linha de comando, em algum momento as pessoas podem parar de usá-lo (por exemplo, se você sair da empresa, a TI é feita por uma empresa diferente, etc.) p>Definindo permissões de acesso específicas no arquivo .exe
Outra opção é simplesmente definir permissões no arquivo .exe. Você pode fazer com que apenas os administradores possam abrir o arquivo ou negar o restante. Negar tem precedência sobre permitir permissões, portanto, é possível que você também esteja negando seu acesso administrativo. Além disso, um usuário com conhecimento e direitos suficientes pode desfazer isso e, em seguida, iniciar o executável. Além disso, se copiarem o executável localmente, poderão remover os direitos e depois iniciar o programa.