Как узнать размер реестра windows

Оптимизация реестра

Реестр — это особый набор файлов на жестком диске, содержащий все параметры приложений, Windows, аппаратного обеспечения, безопасности, а также ваши личные сведения. Фактически реестр представляет собой базу данных, а, значит, хранит большое количество не всегда очевидной информации. Для просмотра реестра служит редактор реестра, запускаемый двойным щелчком на скрытом файле Regedit.exe. Типичный вид окна редактора реестра представлен на рисунке ниже. Как правило, с реестром работают пользователи, осведомленные о функционировании Windows, и то в особых случаях. О работе с реестром вы узнаете далее на нашем сайте.

Окно реестра запущенное через утилиту Regedit 

Как узнать размер реестра? 

К счастью, обнаружить «грязь» в реестре можно, и не открывая окно редактора реестра. Чтобы узнать объем, занимаемый реестром, щелкните правой кнопкой мыши на значке Мой компьютер  и выберите в контекстном меню команду Свойства. Далее в диалоговом окне Свойства системы перейдите на вкладку Дополнительно, щелкните на кнопке Параметры в области Быстродействие, затем перейдите на вкладку Дополнительно в окне Параметры быстродействия и щелкните на кнопке Изменить в области Виртуальная память. Текущий размер реестра отобразится в нижней части окна. Для любого реестра значение от 40 до 55 Мбайт является нормальным. Когда объем реестра больше, следует включить его в список объектов для оптимизации.

Утилита Dureg

Вам также может пригодиться программа Dureg.exe от компании Microsoft. Эта утилита командной строки отображает статистические данные о реестре в легкой для восприятия форме. Кроме того, с ее помощью вы можете проверять отдельные разделы реестра на наличие проблем. Пусть, к примеру, пользователь установил в систему большое количество приложений, параметры которых заполнили реестр. Если эти параметры остались в реестре после удаления приложений, вы можете избавиться от них при помощи любого из средств редактирования реестра.  

Чтобы получить полную статистику реестра, введите в командной строке команду Dureg /А и нажмите клавишу Enter. Проверка реестра займет некоторое время (до 5 минут), поэтому не беспокойтесь, если результаты не появятся мгновенно. Численные значения измеряются в байтах, поэтому в приведенном примере размер реестра составляет 45 Мбайт. Вы также можете использовать утилиту DuReg для проверки данных отдельного пользователя и даже отдельной строки реестра. К примеру, можно определить, сколько памяти занимают записи, содержащие слово Microsoft; для этого достаточно ввести в командную строку команду DuReg /S «Microsoft»

If you can program a bit, see https://docs.microsoft.com/en-us/windows/desktop/sysinfo/determining-the-registry-size.

Copy:

//*******************************************************************
// 
//  Determines the current and maximum registry size.
//
//*******************************************************************

#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <pdh.h>

PDH_STATUS GetRegistrySize( LPTSTR szMachineName, 
    LPDWORD lpdwCurrentSize, LPDWORD lpdwMaximumSize );

//*******************************************************************
// 
//  Entry point for the program. This function demonstrates how to
//  use the GetRegistrySize function implemented below.
// 
//  It will use the first argument, if present, as the name of the
//  computer whose registry you wish to determine. If unspecified,
//  it will use the local computer.
//*******************************************************************

int _tmain( int argc, TCHAR *argv[] ) 
{

    LPTSTR      szMachineName  = NULL;
    PDH_STATUS  pdhStatus      = 0;
    DWORD       dwCurrent      = 0;
    DWORD       dwMaximum      = 0;

    // Allow a computer name to be specified on the command line.
    if ( argc > 1 )
        szMachineName = argv[1];

    // Get the registry size.
    pdhStatus=GetRegistrySize(szMachineName, &dwCurrent, &dwMaximum);

    // Print the results.
    if ( pdhStatus == ERROR_SUCCESS ) 
    {
        _tprintf( TEXT("Registry size: %ld bytes\n"), dwCurrent );
        _tprintf( TEXT("Max registry size: %ld bytes\n"), dwMaximum );

    } 
    else 
    {
        // If the operation failed, print the PDH error message.
        LPTSTR szMessage = NULL;

        FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER |
            FORMAT_MESSAGE_FROM_HMODULE,
            GetModuleHandle( TEXT("PDH.DLL") ), pdhStatus,
            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
            szMessage, 0, NULL );

        _tprintf( TEXT("GetRegistrySize failed:  %s"), szMessage );

        LocalFree( szMessage );
    }

    return 0;
}

//*******************************************************************
// 
//  Retrieves the current and maximum registry size. It gets this
//  information from the raw counter values for the "% Registry Quota 
//  In Use" performance counter within the System object.
// 
//  PARAMETERS:   
//      szMachineName - Null-terminated string that specifies the
//          name of the computer whose registry you wish to query.
//          If this parameter is NULL, the local computer is used.
// 
//      lpdwCurrentSize - Receives the current registry size.
// 
//      lpdwMaximumSize - Receives the maximum registry size.
// 
//  RETURN VALUE: 
//      ERROR_SUCCESS if successful. Otherwise, the function
//      returns a PDH error code. These error codes can be
//      found in PDHMSG.H. A textual error message can be
//      retrieved from PDH.DLL using the FormatMessage function.
// 
//******************************************************************

PDH_STATUS GetRegistrySize( LPTSTR szMachineName, 
    LPDWORD lpdwCurrentSize, LPDWORD lpdwMaximumSize ) 
{
    PDH_STATUS  pdhResult   = 0;
    TCHAR       szCounterPath[1024];
    DWORD       dwPathSize  = 1024;
    PDH_COUNTER_PATH_ELEMENTS pe;
    PDH_RAW_COUNTER pdhRawValues;
    HQUERY      hQuery      = NULL;
    HCOUNTER    hCounter    = NULL;
    DWORD       dwType      = 0;

    // Open PDH query
    pdhResult = PdhOpenQuery( NULL, 0, &hQuery );
    if ( pdhResult != ERROR_SUCCESS )
        return pdhResult;

    __try 
    {
        // Create counter path
        pe.szMachineName     = szMachineName;
        pe.szObjectName      = TEXT("System");
        pe.szInstanceName    = NULL;
        pe.szParentInstance  = NULL;
        pe.dwInstanceIndex   = 1;
        pe.szCounterName     = TEXT("% Registry Quota In Use");

        pdhResult = PdhMakeCounterPath( &pe, szCounterPath, 
            &dwPathSize, 0 );
        if ( pdhResult != ERROR_SUCCESS )
            __leave;

        // Add the counter to the query
        pdhResult=PdhAddCounter(hQuery, szCounterPath, 0, &hCounter);
        if ( pdhResult != ERROR_SUCCESS ) 
            __leave;

        // Run the query to collect the performance data
        pdhResult = PdhCollectQueryData( hQuery );
        if ( pdhResult != ERROR_SUCCESS ) 
            __leave;

        // Retrieve the raw counter data:
        //    The dividend (FirstValue) is the current registry size
        //    The divisor (SecondValue) is the maximum registry size
        ZeroMemory( &pdhRawValues, sizeof(pdhRawValues) );
        pdhResult = PdhGetRawCounterValue( hCounter, &dwType,
            &pdhRawValues );
        if ( pdhResult != ERROR_SUCCESS )
            __leave;

        // Store the sizes in variables.
        if ( lpdwCurrentSize )
            *lpdwCurrentSize = (DWORD) pdhRawValues.FirstValue;

        if ( lpdwMaximumSize )
            *lpdwMaximumSize = (DWORD) pdhRawValues.SecondValue;

    } 
    __finally 
    {
        // Close the query
        PdhCloseQuery( hQuery );
    }

    return 0;
}

Вопрос знатокам: Как узнать размер реестра Windows? Как можно узнать размер (вес) реестра Windows в Мегабайтах?

С уважением, Yfrere11

Лучшие ответы

Pink Cube:

Во первых он не имеет определенного объема (зависит от установленых приложений и тд.) , во вторых зачем?))))

Григорий Трофимов:

Прежде всего, нужно усвоить, что реестр — это не папка.

Реестр — это целый файл, который отвечает всем параметрам обычного файла.
Найти этот файл можно в папке WINDOWS.
Если вы хотите просмотреть реестр Windows, то нужно сделать следующие действия.
Откройте меню «Пуск». Затем опцию «Выполнить. . «.
Вводим в строку надпись «regedit».

Непосредственно, сам реестр находится в двух файлах.
Они называются «User.dat» и «System.dat».
Также существует файл «Policy.pol», в котором содержаться все правила системы.
Данные этого файла обладают приоритетом перед любыми настройками реестра.
Его, как правило, используют в многопользовательской среде и он не инсталлируется по умолчанию.
Все эти файлы можно найти в папке Windows, где располагается вся системная среда компьютера.

Категорически не рекомендуются изменять содержимое папки, это может привести к логическим ошибкам, способным вывести из строя ваш компьютер.
Необходимо учитывать один момент.
Если на компьютере несколько учетных записей пользователей, то система создает несколько файлов «User.dat».

Вот список файлов реестра Windows:

C:\WINDOWS\system32\config :
software-HKEY_CURRENT_CONFIG
system — HKEY_LOCAL_MACHINE, HKEY_CLASSES_ROOT
default — HKEY_USERS
C:\Documents and Settings\%user%
NTUSER.DAT — HKEY_CURRENT_USER

savoljavob:

утилитой dureg от майкрософт (в терминале dureg/a) или сам регфайл (прав кнопа мышь на ветку —Экспорт и смотрим скоко весит—(обычно не более 120мб)

Андрей:

Действительно зачем? Я сейчас из ХР, в папке винды, папка regedit 145 кБ

Кот Мурыч:

Экспортируйте реестр и узнаете.

Алексей Кузнецов:

когда делаешь копию на 8-ке выходит ок 80 мб вроде

vaze kudobu:

Обсуждали тут уже, используй windowsfix

Видео-ответ

Это видео поможет разобраться

Ответы знатоков

beer:

пуск>выполнить>regedit

Волчица 1:

и не открывай, проблем меньше будет

ua:

Как открыть редактор реестра?
Пуск-Выполнить-regedit-ОК.

Silencer:

Предположительно, никак, ибо ошибка в самой логике желаемого.

HKEY_CURRENT_USER
Current — текущий

Александр Полеванов:

В загруженной системе можно видеть только ветку реестра текущего пользователя HKEY_CURRENT_USER
Чтобы узнать узнать пользователя в реестре, нужно открыть ключ
HKEY_CURRENT_USER\Software\Microsoft\Active Setup\Installed Components\{МНОГО-МНОГО-ВСЯКИХ-ЦИФР-И-БУКВ}
Параметр Username
Если нужно узнать других пользователей, необходимо подгружать в редактор реестра файлы удаленного реестра NTUSER.DAT, которые находятся в папке пользователя. Проще посмотреть папку Users (Пользователи) для Windows 7 и выше (про Vista не помню) или Document and Settings для Windows 2000/XP

Если вы можете немного программировать, см. https://docs.microsoft.com/en-us/windows/desktop/sysinfo/determining-the-registry-size.

Копирование:

//*******************************************************************
// 
//  Determines the current and maximum registry size.
//
//*******************************************************************

#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <pdh.h>

PDH_STATUS GetRegistrySize( LPTSTR szMachineName, 
    LPDWORD lpdwCurrentSize, LPDWORD lpdwMaximumSize );

//*******************************************************************
// 
//  Entry point for the program. This function demonstrates how to
//  use the GetRegistrySize function implemented below.
// 
//  It will use the first argument, if present, as the name of the
//  computer whose registry you wish to determine. If unspecified,
//  it will use the local computer.
//*******************************************************************

int _tmain( int argc, TCHAR *argv[] ) 
{

    LPTSTR      szMachineName  = NULL;
    PDH_STATUS  pdhStatus      = 0;
    DWORD       dwCurrent      = 0;
    DWORD       dwMaximum      = 0;

    // Allow a computer name to be specified on the command line.
    if ( argc > 1 )
        szMachineName = argv[1];

    // Get the registry size.
    pdhStatus=GetRegistrySize(szMachineName, &dwCurrent, &dwMaximum);

    // Print the results.
    if ( pdhStatus == ERROR_SUCCESS ) 
    {
        _tprintf( TEXT("Registry size: %ld bytes\n"), dwCurrent );
        _tprintf( TEXT("Max registry size: %ld bytes\n"), dwMaximum );

    } 
    else 
    {
        // If the operation failed, print the PDH error message.
        LPTSTR szMessage = NULL;

        FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER |
            FORMAT_MESSAGE_FROM_HMODULE,
            GetModuleHandle( TEXT("PDH.DLL") ), pdhStatus,
            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
            szMessage, 0, NULL );

        _tprintf( TEXT("GetRegistrySize failed:  %s"), szMessage );

        LocalFree( szMessage );
    }

    return 0;
}

//*******************************************************************
// 
//  Retrieves the current and maximum registry size. It gets this
//  information from the raw counter values for the "% Registry Quota 
//  In Use" performance counter within the System object.
// 
//  PARAMETERS:   
//      szMachineName - Null-terminated string that specifies the
//          name of the computer whose registry you wish to query.
//          If this parameter is NULL, the local computer is used.
// 
//      lpdwCurrentSize - Receives the current registry size.
// 
//      lpdwMaximumSize - Receives the maximum registry size.
// 
//  RETURN VALUE: 
//      ERROR_SUCCESS if successful. Otherwise, the function
//      returns a PDH error code. These error codes can be
//      found in PDHMSG.H. A textual error message can be
//      retrieved from PDH.DLL using the FormatMessage function.
// 
//******************************************************************

PDH_STATUS GetRegistrySize( LPTSTR szMachineName, 
    LPDWORD lpdwCurrentSize, LPDWORD lpdwMaximumSize ) 
{
    PDH_STATUS  pdhResult   = 0;
    TCHAR       szCounterPath[1024];
    DWORD       dwPathSize  = 1024;
    PDH_COUNTER_PATH_ELEMENTS pe;
    PDH_RAW_COUNTER pdhRawValues;
    HQUERY      hQuery      = NULL;
    HCOUNTER    hCounter    = NULL;
    DWORD       dwType      = 0;

    // Open PDH query
    pdhResult = PdhOpenQuery( NULL, 0, &hQuery );
    if ( pdhResult != ERROR_SUCCESS )
        return pdhResult;

    __try 
    {
        // Create counter path
        pe.szMachineName     = szMachineName;
        pe.szObjectName      = TEXT("System");
        pe.szInstanceName    = NULL;
        pe.szParentInstance  = NULL;
        pe.dwInstanceIndex   = 1;
        pe.szCounterName     = TEXT("% Registry Quota In Use");

        pdhResult = PdhMakeCounterPath( &pe, szCounterPath, 
            &dwPathSize, 0 );
        if ( pdhResult != ERROR_SUCCESS )
            __leave;

        // Add the counter to the query
        pdhResult=PdhAddCounter(hQuery, szCounterPath, 0, &hCounter);
        if ( pdhResult != ERROR_SUCCESS ) 
            __leave;

        // Run the query to collect the performance data
        pdhResult = PdhCollectQueryData( hQuery );
        if ( pdhResult != ERROR_SUCCESS ) 
            __leave;

        // Retrieve the raw counter data:
        //    The dividend (FirstValue) is the current registry size
        //    The divisor (SecondValue) is the maximum registry size
        ZeroMemory( &pdhRawValues, sizeof(pdhRawValues) );
        pdhResult = PdhGetRawCounterValue( hCounter, &dwType,
            &pdhRawValues );
        if ( pdhResult != ERROR_SUCCESS )
            __leave;

        // Store the sizes in variables.
        if ( lpdwCurrentSize )
            *lpdwCurrentSize = (DWORD) pdhRawValues.FirstValue;

        if ( lpdwMaximumSize )
            *lpdwMaximumSize = (DWORD) pdhRawValues.SecondValue;

    } 
    __finally 
    {
        // Close the query
        PdhCloseQuery( hQuery );
    }

    return 0;
}

PC-PORTAL

МЕНЮ

Обновлено: 08.10.2023

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Как узнать размер реестра windows 7

Читайте также:

      

  • Как установить расширение криптопро в опере
  •   

  • Не открывает сайты debian
  •   

  • Как удалить учетную запись майкрософт в windows 10 администратор

  • Как узнать процесс по pid windows
  • Как узнать размер памяти видеокарты windows 10
  • Как узнать родительский процесс windows
  • Как узнать пропускную способность сетевой карты windows 10
  • Как узнать расположение программы в windows 10