4

Я создаю систему на основе VHD. Раздел выглядит так:

+----------+-----------+
| VHD файл | Данные пользователя |
+----------+-----------+
  |
+------------+
| СИСТЕМА |
+------------+

Системный том имеет букву диска по умолчанию C. Windows 7 автоматически назначает букву D для тома «VHD-файл» и E для "Пользовательские данные". Том «VHD-файл» также содержит bootmgr и файл подкачки.

Моя цель - скрыть том «VHD-файл», чтобы в нем не находился файл подкачки, и пользователь не может видеть в нем файл VHD и загрузочный каталог.

Windows 7 не позволяет удалять буквы после OOBE, потому что в них находится файл подкачки. (Таким образом, мы должны переместить файл страницы, перезапустить и удалить букву).

Так что я думаю, сделать это во время OOBE или специализированного прохода.

Результат должен быть похож на раздел "SYSTEM RESERVED" 100 МБ - без буквы диска, без файла подкачки, но с ключевыми файлами в нем.

Любые идеи приветствуются!

2 ответа2

1

Наконец-то я это сделал.

Поскольку первый проход специализирован, я позволил ему изменять буквы дисков в реестре с помощью команды REG . Но удалить букву диска по реестру сложно, а использование DISKPART требует перезагрузки, поэтому я позволил этому произойти в режиме oobe.

Вот что я кодирую: (Если у вас есть улучшения, пожалуйста, сообщите мне :)

@echo OFF

setlocal ENABLEEXTENSIONS

if "%1"=="specialize" goto specialize
if "%1"=="oobe" (goto oobe) else (goto end)


:specialize
set KEY_NAME="HKLM\SYSTEM\MountedDevices"

REM Delete Drive D:
set VALUE_NAME=\DosDevices\D:
reg delete %KEY_NAME% /v %VALUE_NAME% /f

REM Get vaules of Drive E:
set VALUE_NAME=\DosDevices\E:
FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
    set ValueName=%%A
    set ValueType=%%B
    set ValueValue=%%C
)
if not defined ValueName goto end

REM Create Drive D with value of Drive E
set VALUE_NAME=\DosDevices\D:
reg add %KEY_NAME% /v %VALUE_NAME% /t %ValueType% /d %ValueValue% /f
REM Delete Drive E:
set VALUE_NAME=\DosDevices\E:
reg delete %KEY_NAME% /v %VALUE_NAME% /f
REM Set Page File
set KEY_NAME="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"
set VALUE_NAME=PagingFiles
set ValueType=REG_MULTI_SZ
set ValueValue="D:\pagefile.sys 0 0"
reg add %KEY_NAME% /v %VALUE_NAME% /t %ValueType% /d %ValueValue% /f
REM END
goto end

:oobe
REM Delete Drive E:
(echo select volume e & echo remove letter=e) | diskpart

:end

0

Используйте MDT 2012, это должно быть в состоянии выполнить с помощью последовательности задач.

Похоже, вы можете сделать это более сложным, чем это должно быть. MDT - это система, выпущенная Microsoft в Vista и Windows 7 для упрощения развертывания операционной системы (OSD).

Последовательность задач TEST

Развертывание на VHD - необязательный шаг последовательности задач

Обратите внимание, что изображение может быть передано на любой диск, который вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .