Script para montar vhd al iniciar windows con permiso de administrador
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.
El script se debe ejecutar como administrador
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.
- Abre el Programador de tareas.
- Haz clic en Crear tarea nueva.
- En la pestaña General, escribe un nombre para la tarea y elige la frecuencia con la que quieres que se ejecute.
- En la pestaña Acciones, haz clic en Nuevo.
- En el cuadro de diálogo Agregar acción, selecciona Programar una tarea por lotes.
- En el campo Programar por lotes, escribe la ruta al archivo .bat que contiene el script para montar el VHD.
- En la pestaña Configuración, marca la casilla Ejecutar con privilegios elevados.
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:
Código:
@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"
El archivo C:\Mount_VHD.txt debe contener el siguiente código:
Código:
select vdisk file="%VHD_FILE%"
attach vdisk
select part 1
assign letter=E
exit
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.