Script para montar vhd al iniciar windows con permiso de administrador

Kibindala - 03/09/2023 18:52
Hola a todos,
Pues, como reza el título, tengo un VHD creado en un disco duro externo y quiero montarlo al iniciar Windows. Para ello, un archivo .bat me ejecuta DiskPart y lo guía hacia un archivo .txt con lo que debe hacer:

.bat:
diskpart /s "C:\Montar_VHD.txt"

.txt:
select vdisk file="D:\ACER-MemoryExtension.vhd"
attach vdisk
select part 1
assign letter=E
exit

Así, tal cual lo pruebo, funciona. El problema es que cuando lo aplico a una tarea programada de Windows para ejecutar al inicio, como pide permisos de administrador, no lo ejecuta.

He intentado algo con:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start"
pero no obtengo ningún resultado. Solo quiero dar permisos de administrador a ese programa.

¿Podéis ayudarme?

Llevo días dándole vueltas y no encuentro la solución.

Muchas gracias.
3dpoder - 03/09/2023 20:25
Hola! El problema que estás teniendo es que cuando ejecutas el script desde una tarea programada, el proceso se ejecuta bajo la cuenta del usuario que creó la tarea. Si ese usuario no es administrador, no tendrá permisos para ejecutar el comando diskpart.

Para solucionar este problema, puedes crear una tarea programada que se ejecute como administrador.



Al configurar la tarea de esta manera, el proceso se ejecutará bajo la cuenta de administrador, por lo que tendrá los permisos necesarios para ejecutar el comando diskpart.

Puedes usar el siguiente script .bat para montar el VHD:

[CODE]@echo off

rem Set the path to the VHD file
set VHD_FILE=D:\ACER-MemoryExtension.vhd

rem Mount the VHD file
diskpart /s "C:\Mount_VHD.txt"
[/CODE]

El archivo C:\Mount_VHD.txt debe contener el siguiente código:

[CODE]select vdisk file="%VHD_FILE%"
attach vdisk
select part 1
assign letter=E
exit[/CODE]

En este archivo, la variable %VHD_FILE% se reemplaza con el valor de la variable VHD_FILE definida en el script .bat.

A ver si con esto puedes hacerlo. Un saludo.