Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Проверка ключей реестра на подверженность перенаправлению Wow6432 (redirected, shared, reflected)

Введение

Привет!
Для тех, кому все это в новинку поясню, что для 64-разрядных ОС некоторые ключи в реестре существуют в двух представлениях:
- для х64 битных приложений.
- для х32 битных приложений.

Пример:

1. Ключ HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID (и все его подразделы) - является 64-битным
2. Ключ HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID (и все его подразделы) - 32-битным.

Если вы попытаетесь в 64-битной ОС с помощью 32-разрядного приложения прочитать/записать/удалить и.т.п... ключ № 1, произойдет перенаправление, и действие выполнится с ключем № 2.

Это пример обычного перенаправления (redirected).

Виды перенаправлений

В плане переадресации существуют такие виды ключей реестра:
1. Перенаправляемые (redirected)
2. Общие (shared)
3. Отраженные (reflected)
4. Также выделю отдельной группой симлинки (symlink), связанные с механизмом registry redirector.

1. Перенаправляемые (redirected).

Пример таких ключей описан выше (см. Введение).

2. Общие (shared)

Возьмем для примера такие ключи:
а) HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies (32-битное представление)
б) HKLM\Software\Microsoft\Windows\CurrentVersion\Policies (64-битное представление)

В виду особой важности, некоторые ключи в обеих представлениях (64 и 32) физически ссылаются на один и тот же ключ. Это означает, что если Вы измените ключ под Wow6432Node (ключ а.), то изменения будут видны и в ключе б. И наоборот.

3.

Такие ключи использовались в ОС Windows Server 2008 / Vista / Server 2003 / XP.
Начиная с Windows 7 они были заменены на Shared (общие ключи, см. выше).

Отличием от Shared ключей является то, что физически - это 2 разных ключа. Но, как только программа завершает запись в любой из этих ключей, он автоматически копируется в другое представление. Таким образом, их состояние синхронизируется между собой.

4. Симлинки, связанные с переадресацией под Wow64.

Microsoft не рекомендует использовать для доступа к 32-разрядным ключам жестко закодированные строки, проходящие через имя Wow6432Node. Вместо этого есть .

Однако, некоторые программисты все же используют такие пути. И это могло бы плохо закончится, потому что, начиная с Windows 7 (?) путь к Wow6432Node для некоторых ключей изменился, а для других было вообще отключено 32-битное представление.

Тем не менее, MS позаботилась о таких ситуациях и ввела поправочные симлинки.
Так, согласно офф. документации, известны такие симлинки, перенаправляющие запросы от одного ключа к другому (независимо от разрядности программы):
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node
  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\AppId указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppId
  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\PROTOCOLS указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PROTOCOLS
  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\Typelib указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Typelib
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node (для ОС Windows Server 2008 / Vista / Server 2003 / XP)
Это не исключительный список и со времен Win 7 было добавлено еще многое, но в документации об этом ничего нет.
Так что мы чуть-чуть умнее, и можем сами у себя посмотреть, какие еще есть симлинки, связанные с механизмом переадресации.

Возьмем замечательную утилиту от Helge Klein, и выполним в командной строке, например, такое для улья HKLM:
Code
1
ListRegistryLinks-x64.exe HKLM | find /i "Wow6432Node"
Итог для Windows 7 x64

"HKLM\SOFTWARE\Classes\Wow6432Node\AppID" -> "HKLM\SOFTWARE\Classes\AppID" (заметьте, что ключ больше не указывает на Wow6432Node, а значит в этой версии ОС просто отказались от 32-битного представления этого ключа и некоторых других (см. ниже аналогичные))
"HKLM\SOFTWARE\Classes\Wow6432Node\PROTOCOLS" -> "HKLM\SOFTWARE\Classes\PROTOCOLS"
"HKLM\SOFTWARE\Classes\Wow6432Node\TypeLib" -> "HKLM\SOFTWARE\Classes\TypeLib"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Current" -> "HKLM\SOFTWARE\Microsoft\Cryptography\Calais\Current"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers" -> "HKLM\SOFTWARE\Microsoft\Cryptography\Calais\Readers"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Services" -> "HKLM\SOFTWARE\Microsoft\Cryptography\Services"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\CTF\SystemShared" -> "HKLM\SOFTWARE\Microsoft\CTF\SystemShared"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\CTF\TIP" -> "HKLM\SOFTWARE\Microsoft\CTF\TIP"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Notepad\DefaultFonts" -> "HKLM\SOFTWARE\Microsoft\Notepad\DefaultFonts"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Software\Microsoft\Shared Tools\Msinfo" -> "HKLM\SOFTWARE\Microsoft\Software\Microsoft\Shared Tools\Msinfo"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Control Panel\Cursors\Schemes" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cursors\Schemes"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\AutoplayHandlers" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\DriveIcons" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\KindMap" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\KindMap"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Telephony\Locations" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Group Policy" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\PreviewHandlers" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\PreviewHandlers"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Setup" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Console" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\FontDPI" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\FontLink" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\FontMapper" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapper"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Fonts" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\FontSubstitutes" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\GRE_Initialize" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\LanguagePack" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\LanguagePack"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\NetworkCards" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Perflib" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Ports" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Print" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\ProfileList" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Time Zones" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\COM3" -> "HKLM\SOFTWARE\Microsoft\COM3"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\DFS" -> "HKLM\SOFTWARE\Microsoft\DFS"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Driver Signing" -> "HKLM\SOFTWARE\Microsoft\Driver Signing"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\EnterpriseCertificates" -> "HKLM\SOFTWARE\Microsoft\EnterpriseCertificates"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\EventSystem" -> "HKLM\SOFTWARE\Microsoft\EventSystem"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\MSMQ" -> "HKLM\SOFTWARE\Microsoft\MSMQ"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Non-Driver Signing" -> "HKLM\SOFTWARE\Microsoft\Non-Driver Signing"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Ole" -> "HKLM\SOFTWARE\Microsoft\Ole"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Ras" -> "HKLM\SOFTWARE\Microsoft\Ras"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Rpc" -> "HKLM\SOFTWARE\Microsoft\Rpc"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\SystemCertificates" -> "HKLM\SOFTWARE\Microsoft\SystemCertificates"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\TermServLicensing" -> "HKLM\SOFTWARE\Microsoft\TermServLicensing"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Transaction Server" -> "HKLM\SOFTWARE\Microsoft\Transaction Server"
"HKLM\SOFTWARE\Wow6432Node\Classes" -> "HKLM\SOFTWARE\Classes\Wow6432Node"
"HKLM\SOFTWARE\Wow6432Node\Clients" -> "HKLM\SOFTWARE\Clients"
"HKLM\SOFTWARE\Wow6432Node\Policies" -> "HKLM\SOFTWARE\Policies"
"HKLM\SOFTWARE\Wow6432Node\RegisteredApplications" -> "HKLM\SOFTWARE\RegisteredApplications"



Перечень ключей реестра, подверженных переадресации

Такой перечень присутствует , но он давно не обновлялся.
Я написал скрипт (батник), который позволяет проверить индивидуальный (введенный вами) ключ на предмет его перенаправления таких видов:
1) Shared
2) Redirected

Если ключ обычный - батник ничего не выведет.
Рекомендуется пользоваться батником на виртуальной машине, т.к. он оставляет мусор в виде пустых ключей в 32-битном представлении. Они специально не удаляются в целях безопасности (чтобы ничего лишнего не наудалять).
Также он не особо хорошо тестировался. Я на 100% не гарантирую, что он все правильно определит.
Тем не менее, по моим ручным тестам (с подтверждением) уже нашлись расхождения даже с официальной информацией, например, на Windows 7 ключ
HKEY_CURRENT_USER\SOFTWARE\Classes\HCP
является обычным, а не Shared.
Код батника


Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@echo off
SetLocal EnableExtensions
 
echo Registry key redirection Tester by Dragokas
echo.
:: Random Data
set "Param=Wow_Test_345165894610759061862530751907892615"
set "Data=Dragokas-123"
set "x32_Reg=%SystemRoot%\SysWow64\reg.exe"
 
net session >NUL 2>NUL || (echo WARNING: Admin privileges required to test HKLM keys.& echo.)
 
:begin
set "key="
set /p "key=Enter key: "
echo.
if "%key%"=="" exit /B
echo "%key%" | find /i "\Wow6432Node" >NUL && (echo Wow6432Node is forbidden. &echo. & goto begin)
echo "%key%" | find /i "\SOFTWARE\Classes" >NUL && (
  set "key32=%key:\SOFTWARE\Classes\=\SOFTWARE\Classes\Wow6432Node\%"
) || (
  set "key32=%key:\SOFTWARE\=\SOFTWARE\Wow6432Node\%"
)
:: delete x64 data
reg delete "%key%" /v "%Param%" /f 2>NUL >&2
:: add x32 data
reg add "%key32%" /v "%Param%" /t REG_SZ /d %Data% /f >NUL
:: Checking Shared mode
reg query "%key%" /v "%Param%" 2>NUL >&2 && (
  echo Shared.
) || (
  rem Checking for redirection
  "%x32_Reg%" query "%key%" /v "%Param%" 2>NUL >&2 && echo Redirected.
)
:: Clean
reg delete "%key32%" /v "%Param%" /f 2>NUL 1>&2
echo.
echo ---------------------------
echo.
goto begin

Скрипт запускать правой кнопкой мыши "От имени администратора", если проверяете ключи HKLM.

Спасибо за чтение.
Надеюсь, Вам окажется полезной эта заметка.
Ответ:

Не по теме:


Разбираться особо не пришлось, так как постоянно с этим работаю.
Понадобилось сделать для постоянного использования скрипт-тестер.
А когда решил ним поделиться, то понял, что он не имеет смысла без описания механизма, так и написал шпаргалку.

Вопрос: Отмена автопротягивания формулы в "Умной таблице"

Добрый день, уважаемые форумчане.

Возник вопрос, и я даже не знаю как к нему подступится.

В файле имеется несколько "Умных" таблиц, все формулы заданы в соответствующем формате.

Одна из "Умных" таблиц используется для ввода данных. Проблема в том, что если в качестве данных указать формулу, то эта формула автоматически применится ко всем строкам данного столбца. И если в других "Умных" таблицах файлах так и должно быть, то конкретно в этой таблице это рушит логику расчета.

Подскажите, пожалуйста, как можно отключить автопротягивание формул для заданной "Умной" таблицы?

Я предполагаю, что это можно реализовать макросом - при отмене последнего действия после ввода формулы автопротягивание отменяется, а введенная формула остается. Но как это реализовать макросом - не представляю.

Буду очень благодарен за помощь.

Использую Excel 2013, но аналогичная ситуация со всеми версиями excel, поддерживающими умные таблицы.

С уважением,
Ответ:
Сообщение от ILF_ollie
как можно отключить автопротягивание формул для заданной "Умной" таблицы?
Достаточно после первого ввода формулы и автоматического копирования нажать на Панели быстрого доступа кнопку Отменить. Больше формулы в этом столбце заполняться не будут.

Или обратить внимание на тег, который появляется при автозаполнении формул, кликнуть по нему и выбрать соответствующую команду
Вопрос: Проверка ключей реестра на подверженность перенаправлению Wow6432 (redirected, shared, reflected)

Введение

Привет!
Для тех, кому все это в новинку поясню, что для 64-разрядных ОС некоторые ключи в реестре существуют в двух представлениях:
- для х64 битных приложений.
- для х32 битных приложений.

Пример:

1. Ключ HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID (и все его подразделы) - является 64-битным
2. Ключ HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID (и все его подразделы) - 32-битным.

Если вы попытаетесь в 64-битной ОС с помощью 32-разрядного приложения прочитать/записать/удалить и.т.п... ключ № 1, произойдет перенаправление, и действие выполнится с ключем № 2.

Это пример обычного перенаправления (redirected).

Виды перенаправлений

В плане переадресации существуют такие виды ключей реестра:
1. Перенаправляемые (redirected)
2. Общие (shared)
3. Отраженные (reflected)
4. Также выделю отдельной группой симлинки (symlink), связанные с механизмом registry redirector.

1. Перенаправляемые (redirected).

Пример таких ключей описан выше (см. Введение).

2. Общие (shared)

Возьмем для примера такие ключи:
а) HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies (32-битное представление)
б) HKLM\Software\Microsoft\Windows\CurrentVersion\Policies (64-битное представление)

В виду особой важности, некоторые ключи в обеих представлениях (64 и 32) физически ссылаются на один и тот же ключ. Это означает, что если Вы измените ключ под Wow6432Node (ключ а.), то изменения будут видны и в ключе б. И наоборот.

3.

Такие ключи использовались в ОС Windows Server 2008 / Vista / Server 2003 / XP.
Начиная с Windows 7 они были заменены на Shared (общие ключи, см. выше).

Отличием от Shared ключей является то, что физически - это 2 разных ключа. Но, как только программа завершает запись в любой из этих ключей, он автоматически копируется в другое представление. Таким образом, их состояние синхронизируется между собой.

4. Симлинки, связанные с переадресацией под Wow64.

Microsoft не рекомендует использовать для доступа к 32-разрядным ключам жестко закодированные строки, проходящие через имя Wow6432Node. Вместо этого есть .

Однако, некоторые программисты все же используют такие пути. И это могло бы плохо закончится, потому что, начиная с Windows 7 (?) путь к Wow6432Node для некоторых ключей изменился, а для других было вообще отключено 32-битное представление.

Тем не менее, MS позаботилась о таких ситуациях и ввела поправочные симлинки.
Так, согласно офф. документации, известны такие симлинки, перенаправляющие запросы от одного ключа к другому (независимо от разрядности программы):
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node
  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\AppId указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppId
  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\PROTOCOLS указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PROTOCOLS
  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\Typelib указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Typelib
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes указывает на HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node (для ОС Windows Server 2008 / Vista / Server 2003 / XP)
Это не исключительный список и со времен Win 7 было добавлено еще многое, но в документации об этом ничего нет.
Так что мы чуть-чуть умнее, и можем сами у себя посмотреть, какие еще есть симлинки, связанные с механизмом переадресации.

Возьмем замечательную утилиту от Helge Klein, и выполним в командной строке, например, такое для улья HKLM:
Код
ListRegistryLinks-x64.exe HKLM | find /i "Wow6432Node"
Итог для Windows 7 x64

"HKLM\SOFTWARE\Classes\Wow6432Node\AppID" -> "HKLM\SOFTWARE\Classes\AppID" (заметьте, что ключ больше не указывает на Wow6432Node, а значит в этой версии ОС просто отказались от 32-битного представления этого ключа и некоторых других (см. ниже аналогичные))
"HKLM\SOFTWARE\Classes\Wow6432Node\PROTOCOLS" -> "HKLM\SOFTWARE\Classes\PROTOCOLS"
"HKLM\SOFTWARE\Classes\Wow6432Node\TypeLib" -> "HKLM\SOFTWARE\Classes\TypeLib"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Current" -> "HKLM\SOFTWARE\Microsoft\Cryptography\Calais\Current"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers" -> "HKLM\SOFTWARE\Microsoft\Cryptography\Calais\Readers"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Services" -> "HKLM\SOFTWARE\Microsoft\Cryptography\Services"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\CTF\SystemShared" -> "HKLM\SOFTWARE\Microsoft\CTF\SystemShared"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\CTF\TIP" -> "HKLM\SOFTWARE\Microsoft\CTF\TIP"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Notepad\DefaultFonts" -> "HKLM\SOFTWARE\Microsoft\Notepad\DefaultFonts"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Software\Microsoft\Shared Tools\Msinfo" -> "HKLM\SOFTWARE\Microsoft\Software\Microsoft\Shared Tools\Msinfo"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Control Panel\Cursors\Schemes" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cursors\Schemes"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\AutoplayHandlers" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\DriveIcons" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\KindMap" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\KindMap"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Telephony\Locations" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Group Policy" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\PreviewHandlers" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\PreviewHandlers"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Setup" -> "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Console" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\FontDPI" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\FontLink" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\FontMapper" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapper"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Fonts" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\FontSubstitutes" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\GRE_Initialize" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\LanguagePack" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\LanguagePack"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\NetworkCards" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Perflib" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Ports" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Print" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\ProfileList" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Time Zones" -> "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\COM3" -> "HKLM\SOFTWARE\Microsoft\COM3"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\DFS" -> "HKLM\SOFTWARE\Microsoft\DFS"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Driver Signing" -> "HKLM\SOFTWARE\Microsoft\Driver Signing"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\EnterpriseCertificates" -> "HKLM\SOFTWARE\Microsoft\EnterpriseCertificates"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\EventSystem" -> "HKLM\SOFTWARE\Microsoft\EventSystem"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\MSMQ" -> "HKLM\SOFTWARE\Microsoft\MSMQ"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Non-Driver Signing" -> "HKLM\SOFTWARE\Microsoft\Non-Driver Signing"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Ole" -> "HKLM\SOFTWARE\Microsoft\Ole"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Ras" -> "HKLM\SOFTWARE\Microsoft\Ras"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Rpc" -> "HKLM\SOFTWARE\Microsoft\Rpc"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\SystemCertificates" -> "HKLM\SOFTWARE\Microsoft\SystemCertificates"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\TermServLicensing" -> "HKLM\SOFTWARE\Microsoft\TermServLicensing"
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Transaction Server" -> "HKLM\SOFTWARE\Microsoft\Transaction Server"
"HKLM\SOFTWARE\Wow6432Node\Classes" -> "HKLM\SOFTWARE\Classes\Wow6432Node"
"HKLM\SOFTWARE\Wow6432Node\Clients" -> "HKLM\SOFTWARE\Clients"
"HKLM\SOFTWARE\Wow6432Node\Policies" -> "HKLM\SOFTWARE\Policies"
"HKLM\SOFTWARE\Wow6432Node\RegisteredApplications" -> "HKLM\SOFTWARE\RegisteredApplications"



Перечень ключей реестра, подверженных переадресации

Такой перечень присутствует , но он давно не обновлялся.
Я написал скрипт (батник), который позволяет проверить индивидуальный (введенный вами) ключ на предмет его перенаправления таких видов:
1) Shared
2) Redirected

Если ключ обычный - батник ничего не выведет.
Рекомендуется пользоваться батником на виртуальной машине, т.к. он оставляет мусор в виде пустых ключей в 32-битном представлении. Они специально не удаляются в целях безопасности (чтобы ничего лишнего не наудалять).
Также он не особо хорошо тестировался. Я на 100% не гарантирую, что он все правильно определит.
Тем не менее, по моим ручным тестам (с подтверждением) уже нашлись расхождения даже с официальной информацией, например, на Windows 7 ключ
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\HCP
является обычным, а не Shared.
Код батника


Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@echo off
SetLocal EnableExtensions
 
echo Registry key redirection Tester by Dragokas
echo.
:: Random Data
set "Param=Wow_Test_345165894610759061862530751907892615"
set "Data=Dragokas-123"
set "x32_Reg=%SystemRoot%\SysWow64\reg.exe"
 
net session >NUL 2>NUL || (echo WARNING: Admin privileges required to test HKLM keys.& echo.)
 
:begin
set "key="
set /p "key=Enter key: "
echo.
if "%key%"=="" exit /B
echo "%key%" | find /i "\Wow6432Node" >NUL && (echo Wow6432Node is forbidden. &echo. & goto begin)
echo "%key%" | find /i "\SOFTWARE\Classes" >NUL && (
  set "key32=%key:\SOFTWARE\Classes\=\SOFTWARE\Classes\Wow6432Node\%"
) || (
  set "key32=%key:\SOFTWARE\=\SOFTWARE\Wow6432Node\%"
)
:: delete x64 data
reg delete "%key%" /v "%Param%" /f 2>NUL >&2
:: add x32 data
reg add "%key32%" /v "%Param%" /t REG_SZ /d %Data% /f >NUL
:: Checking Shared mode
reg query "%key%" /v "%Param%" 2>NUL >&2 && (
  echo Shared.
) || (
  rem Checking for redirection
  "%x32_Reg%" query "%key%" /v "%Param%" 2>NUL >&2 && echo Redirected.
)
:: Clean
reg delete "%key32%" /v "%Param%" /f 2>NUL 1>&2
echo.
echo ---------------------------
echo.
goto begin

Скрипт запускать правой кнопкой мыши "От имени администратора", если проверяете ключи HKLM.

Спасибо за чтение.
Надеюсь, Вам окажется полезной эта заметка.
Ответ:

Не по теме:


Разбираться особо не пришлось, так как постоянно с этим работаю.
Понадобилось сделать для постоянного использования скрипт-тестер.
А когда решил ним поделиться, то понял, что он не имеет смысла без описания механизма, так и написал шпаргалку.

Вопрос: "Умное" Штрихкодирование..

Утречка,дня,вечера, господа!

Намедни пришлось столкнуться с клиентом, которому по воле судьбы пришлось работать с одной шведской фирмой по производству мебели, по - сути доставляют они их продукцию. Решили "очеловечить" процесс путем установки 1С:УТ. И необходимо подключить туда ТСД, и т.д.

Вопрос в следующем: у этой фирмы, назовем OKEA, штрихкоды формируются  путём складывания артикул+цвет (1234567890 , где 12345 - артикул общий, 678 цвет, 90 иногда размер)

Так вот, есть-ли способ научить тсд (андроид) или 1С-ку понимать что необходимо сканировать первые 5 символов?
Ответ: В базовой ут 10 компонента чтения штрихкода подключается через внешнюю обработку торгового оборудования,и там можно со штрих-кодом делать все,что душа пожелает.
Вопрос: Взаимосвязь размеров двух и более "умных" таблиц

Добрый вечер

Не могли бы вы посоветовать что делать в следующей ситуации. В файле excel'а существует несколько "умных" таблиц (точнее 3), которые отображают этапы расчетов. Первая из этих таблиц служит для ввода данных, вторая - это таблица, где производятся промежуточные расчеты, третья - таблица с конечными результатами. При вводе данных в первую таблицу (в том числе копирования большого массива данных) "умная" таблица автоматически изменяет свой размер. Все три таблицы в конечном варианте имеют (должны иметь) одинаковое количество строк.

Вопрос мой таков: возможно ли для второй и третьей "умной" таблицы задать автоувеличение количества в них строк до размера первой "умной" таблицы? Иными словами можно ли для "умных" таблиц задавать динамический диапазон по определённым условиям?

Возможно ли сделать указанное выше без помощи VBA? Возможно ли на основе "Диспетчера имен" и функций типа "АДРЕС", "ИНДЕКС" и подобных?

Написать подобный макрос для меня, в принципе, не такая сложная задача, однако, есть потребность более глубоко изучить встроенные функции Excel'а, в том числе использование "умных" таблиц, диспетчера имен и прочего.
Ответ: Благодарю.
Пришёл к выводу, что без макросов решить данную задачу встроенными функциями excel'я невозможно. Функцией =ДВССЫЛ() работает в данном случае как-то непредсказуемо и непонятно.
Уже написал макрос. Благодарю, KoGG. Ваш макрос тоже посмотрел. У него есть небольшой недостаток - он проверяет размер таблицы только по первому столбцу, который не обязательно всегда будет заполнен. Его преимущество, относительно моего - он взаимоувязывает все три таблицы, при условии, что хоть одна из них изменяет свой размер. Хотя в моём конкретном случае это не требуется, но буду знать на будущее как это сделать.
Кому интересно, прилагаю файл со своим макросом. На этом считаю, что ответ получен и тему можно закрыть.
Вопрос: Как это сделно? Группировка данных + итоги по группам в "умной" таблице

Подскажите, какими инструментами сделана вот такая таблица:

С одной стороны это обычная "умная таблица", на это указывают кнопки-трегольники в заголовках, однако в умных таблицах можно рассчитать лишь один общий итог, а здесь выполнена группировка на товары и услуги, непонятно как.
Ответ: jumpjet67, наверное нет
Вопрос: "Умная" sip телефония с полным управлением через 1с.

Хочу в одну контору принести доброе светлое и веселоё в виде sip телефонии, но не простой а со своими профурсетками и пасьянсом. Хочу полностью управление звонками через 1с, т.е. всю маршрутизацию делать исключительно средствами 1с.
Допустим пришел звонок, sip железка спросила 1с что с ним делать, 1с опросила sip железку на предмет доступны номеров и проч. и именно сама 1с решила как и чего.
Есть ли такие проекты в природе?
Ответ: () Ну соль в том что бы хочу правила из 1с вертеть в режиме реального времени как хочу.
Вопрос: Умное копирование

Задача такова. Есть три каталога. В первом все необходимые файлы. С него необходимо считывать список всех файлов. Во втором катало есть файлы находящиеся в первом, но так же тут есть и лишний мусор, который нам не нужен. Соответственно. Необходимо учитывая список файлов из первого каталога, скопировать файлы с второго каталога в третий каталог.
Нашел некий код который выводит мене список всех файлов с подкаталогами. Но строка в виде "C:\Folder1\File1.txt" не знаю как сделать ее в виде "C:\Folder2\File1.txt" что бы все работало как нужно.
Код Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub processDir( folder )
    dim file, subfolder
    For Each file in folder.Files
        msgbox file.Path
    next
    For Each subfolder in folder.SubFolders
        processDir( subfolder )
    Next
End Sub
 
Dim FSO, dirStart, dirInput, dirOutput, Folder, subfolder, file, i
 
dirStart = ".\folder1"
dirInput = ".\folder2"
dirOutput = ".\folder3"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder( dirStart )
 
processDir(folder)
Добавлено через 25 минут
Нашел еще в справочнике пример для замены слов. Может кто-то сможет привести это все в божеский вид, поскольку я мало что понял в происходящем здесь коде.
Код Code
1
2
3
4
5
6
7
Function ReplaceTest(text, patrn, replStr)
    Dim regEx
    Set regEx = New RegExp
    regEx.Pattern = patrn
    regEx.IgnoreCase = True
    ReplaceTest = regEx.Replace(text, replStr)
End Function
Добавлено через 14 минут
Каталог номер три пустой и при копировании, если каталог не существует последует ошибка. Как все печально...
Ответ: Пример с рекурсией:
Код Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Dim objFS, objItem, strPath1, strPath2, strPath3
strPath1 = "D:\Эталон"
strPath2 = "D:\Смесь"
strPath3 = "D:\Итог"
Set objFS = CreateObject ("Scripting.FileSystemObject")
Call View_Folder(strPath2)
Set objItem = Nothing: Set objFS = Nothing
WScript.Echo "Готово."
WScript.Quit 0
 
'======
 
Function View_Folder(strDir)
Dim strTemp
For Each objItem In objFS.GetFolder(strDir).Files
    strTemp = Replace(objItem.Path, strPath2, strPath1, 1, 1, vbTextCompare)
    If objFS.FileExists(strTemp) Then
        strTemp = Replace(strDir, strPath2, strPath3, 1, 1, vbTextCompare)
        objFS.CopyFile objItem.Path, strTemp & "\", True
    End If
Next
For Each objItem In objFS.GetFolder(strDir).SubFolders
    strTemp = Replace(objItem.Path, strPath2, strPath1, 1, 1, vbTextCompare)
    If objFS.FolderExists(strTemp) Then
        strTemp = Replace(objItem.Path, strPath2, strPath3, 1, 1, vbTextCompare)
        If Not objFS.FolderExists(strTemp) Then objFS.CreateFolder(strTemp)
    End If
    Call View_Folder(objItem.Path)
Next
End Function
Вопрос: Сообщение об ошибке "Непредвиденное появление: |."

Всем привет!
Не буду мудрить напишу здесь, бо оно в тему.

есть комманда
Windows Batch file
ping 192.168.0.18 -n 1 | FIND /C "TTL"
Выдает 1, если пинг вернулся и 0, если нет.
Надо ее загнать в переменную.
Уже всю голову сломал - ругается на "Непредвиденное появление: |", когда через FOR /F пытаюсь получить.

Подскажите, умные люди, пожалуйста, куды копать.
Ответ: Ога. Обратные одинарные кавычки. Ларчик просто открывался...

Спасибо!
Вопрос: Выскакивает окно "Сетевые подключения"

У меня такая же фигня. Выскакивает окно "Сетевые подключения", "запрошена информация с....." источник всегда разный. В основном оно появляется когда нет соединения с интернетом, но сегодня выскочило один раз, даже когда соединение с интернетом работало. Галочка "не использовать коммутируемые подключения" стоит. Вирусов нет, если верить лицензионному КАВ 2013 с обновленными базами естественно. В автозагрузке ничего особенного нет, как и в процессах. КАКИЕ БУДУТ ИДЕИ Господа системные программисты и просто умные головы? Кстати всех с наступающим Новым Годом!
Ответ: Проблему можно решить путём входа в панель управления, выбора В Диспетчере устройств раздела "Сетевые адаптеры" и, нажимая на каждом сетевом адаптере правой кнопкой мыши, выбирать пункт "Удалить" После того, как все сетевые адаптеры будут удалены - нужно перезагрузить Windows и при её загрузке она сама определит все сетевые адаптеры снова.
Если же и после этого проблема не решена - всё дело в вставленном вами блютусе на задней панели системника. Если его вытащить, то это окно больше не будет появляться. А чтобы блютус всё-таки работал можно переставить его в другое гнездо задней панели системника (например в гнездо другого концентратора (разветвлителя)).

Добавлено через 14 часов 16 минут
Вытащенный блютус можно заменить на другой. У меня с первым вставленным блютусом окно это выскакивало, а с другим вставленным блютусом - перестало выскакивать.