रजिस्ट्री का आकार निर्धारित करें


4

मैं अपनी रजिस्ट्री का आकार कैसे निर्धारित कर सकता हूं?

मैं अपनी रजिस्ट्री का बैकअप लेने की कोशिश कर रहा हूं, और इसके लिए काफी समय ले रहा हूं।

मुझे नहीं लगता कि कोई फ़ाइल पथ था जो मैं किसी अन्य फ़ाइल की तरह इसके गुणों की जांच करने के लिए जा सकता था? मैं इसका आकार कैसे निर्धारित कर सकता हूं?

जवाबों:


8

%windir%\System32\configऔर %USERPROFILE%\NTUSER.DAT। कॉन्फ़िगरेशन फ़ोल्डर छिपा हुआ होगा, लेकिन सभी रजिस्ट्री पित्ती, HKEY_CURRENT_USER के लिए EXCEPT, जो NTUSER.DAT फ़ाइल है


ध्यान दें कि फ़ाइल का आकार आवश्यक रूप से रजिस्ट्री आकार के समान नहीं है। कई अन्य द्विआधारी डेटाबेस प्रारूपों के साथ, यह संभव है कि फ़ाइल का हिस्सा अतीत में उपयोग किया गया था, लेकिन अब और नहीं (फ़ाइल सिस्टम कैसे सुगंधित हो इसके समान)।
grawity

@ शुद्धता यह सच है, लेकिन पूरी तरह से भूल गए
कनाडाई ल्यूक

@surfasb लेकिन "विशेषज्ञों" को आकर्षित करने के लिए, आपको होना चाहिए: P
कनाडाई ल्यूक

@ शुद्धता: यह बहुत बढ़िया है।
सर्फ

1

रजिस्ट्री का डेटाबेस आकार प्राप्त करने के लिए, आप यहां पूर्ण स्क्रिप्ट में PMI , WMI Win32_Registry वर्ग को क्वेरी कर सकते हैं

$data=Get-WmiObject -Class Win32_Registry -ErrorAction Stop
#Format the results and write an object to the pipeline 
$data | Select-Object -Property @{Name="Computername";Expression={$_.__SERVER}},
Status,
@{Name="Current Size (Mb)";Expression={$_.CurrentSize}},
@{Name="Max Size (Mb)";Expression={$_.MaximumSize}},
@{Name="Free Size (Mb)";Expression={$_.MaximumSize - $_.CurrentSize}},
@{Name="Percent Free (%)";Expression={ (1 - ($_.CurrentSize/$_.MaximumSize))*100 }},
@{Name="Created";Expression={$_.ConvertToDateTime($_.InstallDate)}},
@{Name="Age";Expression={(Get-Date) - ( $_.ConvertToDateTime($_.InstallDate)) }}

1

यदि आप थोड़ा सा प्रोग्राम कर सकते हैं, तो 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;
}

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.