Reg sz expand: Registry value types — Win32 apps
Содержание
Состав ос Windows и характеристика ее компонентов. Расширенная машина pc.
Программы
BIOS (используются на
начальной стадии загрузки ОС).
Программа
IPL (Initial Program Loader).
Некоторые
информационные файлы: BOOT.INI,
реестр.
Файлы на системном диске,
использующиеся для загрузки ОС
(NT.EYE)
HAL
– уровень абстракции оборудования
(программы, которые делают оборудование
«невидимым» для остальных приложений
на более высоких уровнях и низкоуровневые
драйверы).
Драйверы: универсальные
и виртуальные.
Универсальные драйверы
для группы однотипных устройств, а
виртуальные
Драйверы для поддержки
работы устройств ввода/вывода, для
программ на логическом уровне
Драйверы
устройств ввода/вывода высокоуровневые
(логический уровень)
Уровень ядра
ОС.
— User – обработка
прерываний
— GDI –
графический интерфейс устройств
вывода.
Уровень диспетчеров
(низкоуровневое планирование)
—
Диспетчер процессов (планирование
прохождения процессов)
— Диспетчер
планирования памяти (RAM)
(распределение памяти между процессами)
—
Диспетчер устройств ввода/вывода
(инициация и завершение процессов
ввода/вывода)
—
Диспетчер Plug & Play
устройств
— Диспетчер конфигурации
(конфигурация оборудования ос, внесение
всех изменений в реестр)
— Диспетчер
управления сервисами (сервисы – службы
ос)
— Диспетчер электропитания.
Уровень
логического программного интерфейса
NTDLL, средства API
(написания интерфейсов), планировщики
(драйвера высокого уровня).
— планировщики
сеансов WINLOGON
— планировщик
очереди печати (SPOOLER)
—
планировщик сервисов (управление
сервисами)
— планировщик задач (TASK
MANAGER)
Подсистемы
приложений WIN 32
основные
приложения OSIX и OS/2
Оснастка
Windows. (средства ОС, которые
доступны пользователю, после ее
загрузки).
Приложения (программы,
которые находятся в данной ОС).
Расширенная
машина:
Аппаратура <- HAL
<- драйверы УВВ <- ядро ОС <- NTDLL
<-управляющие приложения <- Оснастка
приложений.
Процесс загрузки ос Windows. Системное меню. Системный диск
Загрузка
ОС:
POST
(BIOS) – программа тестирования
оборудования (наличие оборудования)
находит системный диск и загружает
IPL
IPL
активизирует NTLDR.EXE.
16 – битная программа.
NTLDR.EXE
(работает и в реальном и в защищенном
режиме) запускает NTDETECT. COM
NTDETECT.COM
собирает доступную информацию об
подключенном оборудовании
Считывается
файл BOOT.INI
Файл загрузки ядра NTOSKRNL.EXE
это уже 32 – разрядное приложение.
Загружает драйвера, элементы ядра и
диспетчера. Запускает WINLOGON.
WINLOGON планировщик
сеансов.
Загрузка оставшихся сервисов
и другой оснастки Windows в
соответствии с выбором пользователя.
Режим
управления загрузки
— безопасный –
с загрузкой минимальных (стандартных)
драйверов устройств.
— обычный.
—
с поддержкой сетевых драйверов
—
безопасный режим с поддержкой командной
строки.
Включение
протоколирования BOOTLOG.TXT
– информация о всех загруженных
драйверах.
Использование последней
успешной загрузки.
Перезагрузка и
т. д.
Реестр Windows, его структура.
Основная
системная база данных, которая содержит
информацию обо всех пользователях, обо
всем оборудовании и о программном
обеспечении данного компьютера.
Логически
делится:
1) Информация о пользователях
(профили пользователей)
2) Информация
об оборудовании и программном обеспечении.
6
основных кустов реестра
HKU
— HK_USER(default,
user1, user2..) –
информация о всех пользователях, которые
зарегистрированы в данной системе.
HKCU
— HK_CURRENT_USER
– информация о пользователе, который
работает в данный момент.
HKLM
— HK_LOCAL_MACHINE(system,
software) – содержит всю
информацию об оборудовании и установленном
программном обеспечении.
HKCC
— HK_CURRENT_CONFIG
– текущая информация о состоянии
устройства.
HKCR —
HK_CLASSES_ROOT
– куст реестра, в котором зарегистрирована
информация о связи приложений с типами
данных, с которыми они ассоциированы.
HKDD — HK_DYN_DATA
– имеет информацию о производительности
некоторых элементов операционной
системы.
—
HKCC
SAM
SECURITY
SOFTWARE(об
установленном ПО для текущей
конфигурации)
HARDWARE(об
установленном ПО)
SYSTEM(информация
о ресурсах системы)
—HKU
Control
panel – установленные
оснастки системы
keyboard
play out – о
раскладке клавиатуры
printer
– доступные принтеры
access
remote – ключ удаления
доступа
appsevents – звуковое
оформление
software –
инф-я о настройках зарегистрированного
орорудования
actwork –
сетевые настройки
environment
–среда окружения
remoteaccess
– информация о модемных соединениях
Тип
данных в реестре.
1) REG
SZ – строка символов в
формате UNICODE.
2) REG
MULTI SZ –
массив строк в формате UNICODE.
3)
REG EXPAND SZ
– строка.
4) REG BINARY
– число в двоичном или шестнадцатеричном
формате.
5) REG DWORD
– 32-битное число .
6) REG
QWORD – 64-битное число.
7)
REG NOUN – не
типизированные данные.
8) REG_LINK
– ключ на другой ключ в реестре.
окон — Как использовать REG_EXPAND_SZ из командной строки?
спросил
Изменено
2 года, 8 месяцев назад
Просмотрено
23 тысячи раз
Я читал документацию по командной строке Windows (Win+F1) о командах, которые изменяют реестр Windows, особенно о команде «reg add». 9% или вроде !systemroot!
или просто расширяется до C:\windows.
Я мог бы, вероятно, использовать файл .reg для выполнения своей задачи, но я просто не хочу этого делать.
Я подумал, что, возможно, что-то не так с программой, которую я использую для отображения содержимого переменных ( regedit / regedt32 / reg query (commandline)
), но после проверки это, вероятно, не так.
Есть идеи? Меня в основном интересует, как должно выглядеть значение переменной в окне regedit, должно ли оно быть таким: 9″ с другим «%»:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /d %%SystemRoot%%;c:\Program" Files"\Intel\DMIX;C: \bin/t REG_EXPAND_SZ
(cmd.exe всегда напоминает мне цитату Генри Спенсера «Те, кто не понимает Unix, обречены изобретать его заново, плохо» )
1
Я понимаю, что это старая тема, но поскольку ответа, похоже, нет, и я тоже был сведен с ума этой проблемой, я поделюсь тем, что придумал. Это запутанно, некрасиво и выглядит вот так:
УСТАНОВКА ПЕРЕМЕН=% УСТАНОВКИ
УСТАНОВИТЬ ЗНАЧЕНИЕ=%VAR%SystemRoot%VAR%\system32. ..
REG ADD HKLM… /v Test /t
REG_EXPAND_SZ /d %VALUE%
Я получаю Test, содержащий строку %SystemRoot%\system32
Редактировать: нужно было завершить тестирование перед публикацией. Хотя это работало из командной строки, в моих командных сценариях это не сработало. Что DID работало, так это SET VALUE=%%SystemRoot%%\system32...
У нас есть использование в autounattend.xml. Сначала я следил за ответом афории, затем мне пришлось использовать расширенный ответ мивка. У меня это работало. Затем я сделал небольшое изменение, и он перестал работать. Я считаю, что это понимание стоит сообщить, чтобы избавить других от длительного разочарования. 9% /ф
В пакетном файле вместо % используйте другой %.
reg add HKLM\Software\Microsoft\Command" "Processor /v AutoRun /t REG_SZ /d title" "%%username%% /f
Мне потребовалось некоторое время, чтобы понять это. На мой взгляд, я должен процитировать всю строку, но не смог передать переменную без ее расширения. \system32 9%%\систем32\»»
Мне, наконец, надоели баннеры/логотипы на CScript, и я решил добавить к ассоциациям VBS префикс //nologo
в своем пакетном сценарии «новой сборки». Это потребовало изменения записи реестра REG_EXPAND_SZ
с помощью переменной среды, и этот вопрос и его различные ответы были лучшим вдохновением, которое я мог найти. Вот окончательный сценарий.
КОМПЛЕКТ "thecmd=\""%%SystemRoot%%\System32\CScript.exe\"" //nologo \""%%1\"" %%*" ЭХО.%thecmd% REG.exe ADD "HKEY_CLASSES_ROOT\VBSFile\Shell\Open2\Command" /ve /t REG_EXPAND_SZ /d "%thecmd%" /f УСТАНОВИТЕ cmd=
Сохранение команды в переменной и использование \""
для "
и %%
для %
позволяют ей работать.
Если вы предпочитаете однострочный (опять же, из пакета) вы можете использовать:
REG.exe ADD "HKEY_CLASSES_ROOT\VBSFile\Shell\Open2\Command" /ve /t REG_EXPAND_SZ /d "\""%%SystemRoot%%\System32\CScript. exe\"" //nologo \ ""%%1\"" %%*" /f
Если вам нужна такая же функциональность, не забудьте установить глагол для VBSFile 9От 0016 до
Open2
, поэтому вы можете просто дважды щелкнуть файлы VBS, чтобы запустить их с помощью CScript:
REG.exe ADD "HKEY_CLASSES_ROOT\VBSFile\Shell" /ve /t REG_SZ /d "Open2" /f
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Reg — Редактировать реестр — Windows CMD
Reg — Редактировать реестр — Windows CMD — SS64.com
- SS64
- CMD
- Инструкции
Чтение, установка или удаление ключей и значений реестра, сохранение и восстановление из файла .REG.
Синтаксис: REG QUERY [ ROOT \] RegKey /V ValueName [/s] [ /F Данные [/K] [/D] [/C] [/E] ] [/T DataType ] [/Z] [/SE Разделитель ] [/reg:32 | /reg:64] REG QUERY [ ROOT \] RegKey /VE [ /f Данные [/K] [/D] [/C] [/E] ] -- /VE возвращает (по умолчанию ) ценить [/T DataType ] [/Z] [/SE Разделитель ] [/reg:32 | /reg:64] РЕГ ДОБАВИТЬ [ КОРЕНЬ \] RegKey /V ValueName [/T Тип данных ] [/S Разделитель ] [/D Данные ] [/F] [/reg:32] [/reg:64] REG ADD [ ROOT \] RegKey /VE [/d Данные ] [/F] [/reg:32 | /reg:64] REG DELETE [ ROOT \] RegKey /V ValueName [/F] REG DELETE [ ROOT \] RegKey /VE [/F] -- Удалить значение (по умолчанию) РЕГ УДАЛИТЬ [ ROOT \] RegKey /VA [/F] -- Удалить все значения под этим ключом REG COPY [\\ SourceMachine\ ][ ROOT \] RegKey [\\ DestMachine\ ][ROOT\] RegKey REG EXPORT [ROOT\]RegKey FileName . reg [/Y] [/reg:32 | /reg:64] REG IMPORT FileName .reg [/reg:32 | /reg:64] REG SAVE [ ROOT \] RegKey FileName .hiv [/Y] [/reg:32 | /reg:64] РЕГ ВОССТАНОВЛЕНИЕ \\имя_машины\ [ ROOT ]\ имя ключа имя файла .hiv [/reg:32 | /reg:64] REG LOAD KeyName FileName [/reg:32 | /reg:64] РЕГ ВЫГРУЗИТЬ KeyName REG COMPARE [ ROOT \] RegKey [ ROOT \] RegKey [ /V ValueName ] [ Output ] [/s ] [/reg:32 | /reg:64] REG COMPARE [ ROOT \] RegKey [ ROOT \] RegKey [ /VE ] [Вывод] [/s] [/reg:32 | /reg:64] Ключ: КОРЕНЬ : HKLM = HKey_Local_machine (по умолчанию) HKCU = HKey_current_user HKU = HKey_users HKCR = HKey_classes_root ValueName : Значение в выбранном RegKey для редактирования. (по умолчанию все ключи и значения) /C : поиск с учетом регистра. /Д Данные : Фактические данные для хранения в виде «строки», целого числа и т. д. /E : Возвращает только точные совпадения, по умолчанию возвращаются все. /F: добавить/удалить — принудительное обновление без запроса «значение существует, перезаписать Y/N». Запрос - укажите данные/шаблон для поиска, по умолчанию = "*" Используйте двойные кавычки, если строка содержит пробелы. /K : Поиск только по именам ключей. \\ Машина : Имя удаленной машины — по умолчанию не используется текущая машина. На удаленных машинах доступны только HKLM и HKU. FileName : Имя файла для сохранения или восстановления куста реестра. KeyName : Имя ключа для загрузки файла куста. (Создание нового ключа) RegKey : Ключ реестра. Имя строки. Они чувствительны к регистру при создании и нечувствительны к регистру при чтении. /S : запросить все подразделы и значения. /С Разделитель : Символ для использования в качестве разделителя в значениях REG_MULTI_SZ, по умолчанию "\0" /SE Разделитель : Символ для использования в качестве разделителя в значениях REG_MULTI_SZ, по умолчанию "\0" /T Тип данных : REG_SZ (по умолчанию) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ Щелкните, чтобы просмотреть полный список, по умолчанию = все типы. /reg:32 : заставить REG.exe читать/записывать в 32-разрядную папку реестра. /reg:64 : заставить REG.exe читать/записывать в 64-битный раздел реестра. По умолчанию 32-разрядный процесс (например, клиент SCCM или 32-разрядный установщик MSI) на 64-битной машине будет использоваться 32-битное представление реестра: HKLM\SOFTWARE\Wow6432Node Используйте переключатель /REG, чтобы переопределить это. См. Q305097 для более подробной информации. Вывод : /od (только различия) /os (только совпадения) /oa (все) /on (нет вывода) /V : запрос определенного значения ключа реестра, если он опущен, запрашиваются все значения ключа. /VE : сравнить или УСТАНОВИТЬ пустое имя значения (по умолчанию) /Y : Принудительно перезаписать существующий файл без запроса. /Z : Verbose — показывает числовой эквивалент типа valuename .
Любую из приведенных выше команд можно запустить на удаленном компьютере, добавив \\ MachineName в командную строку, при условии, что служба удаленного реестра запущена.
Пути реестра, содержащие пробелы, должны быть заключены в кавычки:
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList\"
В длинном пути легко пропустить один пробел, поэтому
это хорошая привычка заключать все пути реестра в кавычки.
В зависимости от разрешений реестра REG ADD может потребовать запуска REG.exe из командной строки с повышенными привилегиями.
Данные реестра, хранящиеся в HKCU, будут видны и доступны для записи вошедшему в систему пользователю.
Данные реестра, хранящиеся в HKLM, будут видны всем пользователям и доступны для записи только администраторам.
REG RESTORE имеет тенденцию не работать, возможно, из-за проблем с брандмауэром, EXPORT и IMPORT намного надежнее.
символов обратной косой черты
Команда REG интерпретирует \ как escape-последовательность для символа, следующего сразу за ним.
Чтобы включить в данные кавычку (""), поставьте перед ней escape-символ, например, вот \" кавычкаЭто может вызвать проблемы с путями к каталогам в кавычках, так как \" в конце строки будет экранирован.
Чтобы сохранить путь к каталогу с завершающей обратной косой чертой (\), необходимо добавить вторую обратную косую черту, чтобы «экранировать» escape
так, например, вместо "C:\My Docs\" используйте "C:\My Docs\\"
Активировать
Чтобы активировать изменения реестра в HKEY_CURRENT_USER без выхода из системы:
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters, 1, True
н.б. это неподдерживаемый хак, с большой вероятностью неудачи в будущем - подробности на oldnewthing
Высота
В отличие от REGEDIT, REG. exe не всегда требует повышения прав
.
При добавлении элемента в HKCU REG будет автоматически проявляться как Invoker и будет работать без повышения прав,
при добавлении элемента в HKLM его нужно запускать с повышенными правами.
0 = успех, результат идентичен
1 = Ошибка
2 =
Успех, результат другой
Примеры
Запрос настроек консоли:
C:\> РЕГ ЗАПРОС HKCU\Консоль\ C:\> РЕГ ЗАПРОС HKCU\Console /v ScreenBufferSize
Добавьте раздел реестра «Образец» вместе с некоторыми данными, а затем выполните запрос, чтобы убедиться, что он работает:
C:\> REG ADD HKCU\Software\SS64 /v Sample /d "некоторые тестовые данные"
C:\> REG QUERY HKCU\Software\SS64 /v Образец
Добавьте раздел реестра для отключения быстрого переключения пользователей на текущем ПК (требуется повышение прав):
C:\> REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v HideFastUserSwitching /t REG_DWORD /d 1
Добавьте ключ реестра REG_BINARY в HKLM и перезапишите, если он уже существует (требуется повышение прав):
C:\> REG ADD HKLM\Software\DiLithium /v WarpSpeed /t REG_BINARY /d f1f2f3f4 /f
C:\> РЕГ ЗАПРОС HKLM\Software\DiLithium /v WarpSpeed
Найти расположение папки меню «Пуск»:
C:\> REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Start Menu"
Темный режим Windows
Включить темный режим Windows:
C:\> REG ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize /v AppsUseLightTheme /t REG_DWORD /d 0 /fВключить облегченный режим Windows:
C:\> REG ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize /v AppsUseLightTheme /t REG_DWORD /d 1 /fЧтобы автоматизировать переход в темный режим, используйте запланированную задачу для вызова вышеуказанных сценариев REG. exe на рассвете и в сумерках.
Чтобы они запускались точно на рассвете/на закате, а не в фиксированное время, используйте утилиту Sunwait.
Удалите папку 3DObjects из боковой панели проводника Windows (требуется повышение прав):
C:\> REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" C:\> REG DELETE "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}"
Сохранить путь к каталогу/реестру, который заканчивается обратной косой чертой:
Установить _reg=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\SS64.EXE 9 %Скопировать ключи реестра:
C:\> REG COPY HKCU\Software\SS64 HKCU\Software\SS64Copy
C:\> REG COPY \\Computer64\HKCU\Software\SS64 HKCU\Software\SS64
Экспорт/импорт/сохранение/восстановление:
РЕГ ЭКСПОРТ HKCU\Software\SS64 C:\MyReg.