Para um exe, se você colocar um manifesto na mesma pasta que o exe que solicita a elevação, toda vez que alguém executar o aplicativo, ele será solicitado a elevá-lo. Excluir o arquivo da pasta colocará o comportamento de volta ao normal.
O nome do arquivo deve ser exename.exe.manifest, em outras palavras, se você tiver foo.exe, deverá nomear o arquivo foo.exe.manifest. O conteúdo deve ficar assim:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="appname"
type="win32"/>
<description>elevate execution level</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
(O nome e a descrição não importam, sinta-se à vontade para fazê-los corresponder ao seu aplicativo. Ou não.)
Isso não funcionará se o exe tiver um manifesto incorporado solicitando um nível de execução mais baixo, mas funcionará para um aplicativo sem manifesto.
Não sei por que você deseja ativar e desativar esse recurso com um arquivo em lotes, mas é possível fazer isso com facilidade, renomeando esse arquivo em lote para foo.exe.notmanifest e de volta para foo.exe.manifest .