Asegurarse de que un lote se ejecuta con privilegios de administrador

Utilizamos files por lotes para realizar instalaciones sencillas de serveres COM, principalmente algunas copys de file y regsvr32s. Dado que regsvr32 escribe en la sección de máquina local del logging, el lote debe ejecutarse con privilegios administrativos. Me gustaría ser capaz de reconocer cuando este no es el caso, y dejar que el usuario sepa antes de la installation falla.

Una posible solución sería intentar crear un file en system32 y, a continuación, comprobar si existe. Si lo hace, el usuario más probablemente (siempre?) Tiene permissions para escribir en el logging también. De lo contrario, informe al usuario que la installation fallará. Sin embargo, no estoy seguro de la exactitud de la verificación es – realmente no quiero ser capaz de crear (y luego eliminar) los files en system32, sólo tiene que instalar un server COM. ¿Hay una mejor manera?

El problema es más común con Windows 7 y 2008 – si hay una solución que sólo funcionará para ellos, que así sea. Sin embargo, me gustaría seguir usando files por lotes simples.

¿Por qué no intentar algo inofensivo, como:

%SystemRoot%\System32\net.exe file | %SystemRoot%\System32\findstr /l /c:"Access is denied."
if %ERRORLEVEL% NEQ 0 (
echo Not an admin.
exit
)