У Windows 7 і Windows Server 2008 R2 з'явилася можливість створювати і підключати файли віртуальних дисків (VHD/ VHDX) Прямо з консолі управління дисками (Disk Management). Такі віртуальні диски виглядають в системі як окремі фізичні диски і можуть використовуватися для зберігання довільних даних. Істотний недолік таких дисків - при кожному перезавантаженні Windows доводиться кожен раз вручну монтувати все VHD / VHDX файли. Крім того, право на монтування файлів віртуальних дисків vhd є тільки у адміністраторів комп'ютера, прості користувачі не можуть самостійно підключити VHDx файл (кожен раз доводиться втручатися адміністратору).
У цій статті ми покажемо, як автоматично монтувати vhd / vhdx файл при завантаженні системи, так, щоб віртуальні диски були доступні і простим користувачам (що не володіють правами адміністратора)
У Windows відсутня вбудована можливість автомонтірованіе vhd-файлів при перезавантаженні системи, тому нам доведеться розробити власний механізм монтування. У цьому нам допоможе планувальник завдань Windows і утиліта diskpart.
Отже, створимо текстовий файл (C: \ Scripts \ attach_vhd.txt) з наступним кодом:
select vdisk file = "C: \ vhd2 \ w10vhd.vhdx"
attach vdisk
select part 1
assign letter = K
exit
де:
C: \vhd2 \w10vhd.vhdx - повний шлях до VHD або VHDX образу диска
K -буква диска, яку потрібно призначити VHD образу
Даний сценарій підключає вказаний vhd файл, вибирає на ньому перший розділ і призначає йому цю букву диска. Якщо на диску кілька розділів, змініть код відповідним чином, вказавши номер розділу, який потрібно підключати.
Примітка. З метою безпеки бажано змінити NTFS дозволу на файл «C: \ Scripts \ attach_vhdx.txt», так щоб прості користувачі не могли його змінити.Запустіть Windows Task Scheduler (Taskschd.msc) І створіть нове завдання планувальника (Actions -> Create Task). Налаштуйте його таким чином:
- вкладка General:
- Вкажіть ім'я завдання (Name): Automountvhdx;
- Відзначте, що він має запускатися незалежно від того, увійшов користувач в систему чи ні (Run whether user is logged on or not);
- Вкажіть, що завдання має запускатися з максимальними привілеями ( Run with highest privileges);
- вкладка Triggers:
- Додайте новий тригер запуску при завантаженні (At Startup) З настройками за замовчуванням.
- вкладка Actions:
- Створимо нову дію New:
- Дія запуск програми (Start a program);
- Програма / скрипт: diskpart ;
- В якості аргументів програми вкажемо: /s «C: \Scripts\attach_vhd.txt»;
- Створимо нову дію New:
- на вкладці Conditions зніміть галку у опції «Start the task only if the computer is on AC power«.
- Збережіть зміни. Система попросить вас вказати дані облікового запису, з-під якої буде запускатися завдання (обліковий запис повинен мати права адміністратора).
Щоб завдання виконувалося від імені системи, ще раз відкрийте його властивості і на вкладці General натисніть кнопку Change User or Group. У вікні вибору користувача вкажіть system і збережіть зміни.
Ви можете створити завдання планувальника з допомогою PowerShell або за допомогою schtasks:schtasks / create / tn "automountvhdx" / tr "diskpart.exe / s 'c: \ Scripts \ attach_vhdx.txt'" / sc ONLOGON / ru SYSTEM
Тепер після перезавантаження сторінки комп'ютера вказаний віртуальний VHDx диск буде змонтований автоматично.
Примітка. Як правило, диск з'являється в списку доступних дисків не відразу, а через 30-60 секунд після завантаження Windows.Якщо ви хочете, щоб віртуальний vhdx диск монтувався не в окрему букву диска, а в папку, змініть код у файлі c: \ Scripts \ attach_vhd.txt на:
select vdisk file = "C: \ vhd2 \ w10vhd.vhdx"
attach vdisk
select part 1
assign mount = "c: \ mount"
exit
В результаті виконання даної команди віртуальний диск буде змонтований в окремий каталог на вашому фізичному диску (в даному каталозі буде відображатися вміст vhdx файлу).
Можна змонтувати не тільки локальний VHD диск, але і диск з мережевого каталогу через UNC шлях.
select vdisk fils = "\\ 192.168.1.100 \ share \ shared.vhdx"
Для тестування роботи коди вашого скрипта автоматичного підключення віртуальних дисків не обов'язково кожен раз перезавантажувати комп'ютер, досить в командному рядку з правами адміністратора виконати команду:
diskpart / s c: \ Scripts \ attach_vhdx.txt
Якщо ваш код не містить помилок, то команда підключить vhdx файл і в системі з'явиться новий диск.
Дані способи автоматичного підключення віртуальних дисків працюють як в Windows 10, так і в Windows 8.1 і Win 7.
Якщо ви більше любите PowerShell, можна автоматично змонтувати VHDX диск за допомогою наступного PoSh скрипта в автозавантаженні (для управління дисками ізспользуются командлети з модуля Storage):
mount-vhd -path C: \ vhd2 \ w10vhd.vhdx -PassThru | Get-Disk | Get-Partition | Set-Partition -NewDriveLetter G