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
<-управляющие приложения <- Оснастка
приложений.

  1. Процесс загрузки ос Windows. Системное меню. Системный диск

Загрузка
ОС:

POST
(BIOS) – программа тестирования
оборудования (наличие оборудования)
находит системный диск и загружает
IPL
IPL
активизирует NTLDR.EXE.
16 – битная программа.
NTLDR.EXE
(работает и в реальном и в защищенном
режиме) запускает NTDETECT. COM
NTDETECT.COM
собирает доступную информацию об
подключенном оборудовании
Считывается
файл BOOT.INI
Файл загрузки ядра NTOSKRNL.EXE
это уже 32 – разрядное приложение.
Загружает драйвера, элементы ядра и
диспетчера. Запускает WINLOGON.
WINLOGON планировщик
сеансов.
Загрузка оставшихся сервисов
и другой оснастки Windows в
соответствии с выбором пользователя.

Режим
управления загрузки
— безопасный –
с загрузкой минимальных (стандартных)
драйверов устройств.
— обычный.

с поддержкой сетевых драйверов

безопасный режим с поддержкой командной
строки.

Включение
протоколирования BOOTLOG.TXT
– информация о всех загруженных
драйверах.
Использование последней
успешной загрузки.
Перезагрузка и
т. д.

  1. Реестр 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.