logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Skrypt .vbs lub .bat sprawdzający klucz w rejestrze

Gelip 02 Wrz 2019 16:00 1302 7
REKLAMA
  • #1 18147829
    Gelip
    Poziom 36  
    Posty: 5213
    Pomógł: 321
    Ocena: 607
    Potrzebuję skrypt .bat lub .vbs, który sprawdza obecność klucza o danej nazwie w rejestrze Windows i wyświetla stosowne komunikaty np. jeśli znajdzie taki klucz to ma wyświetlić komunikat: "Windows boot from Real Mode" a jeśli nie znajdzie to "Windows boot from Protected Mode"

    Główne polecenie, które to sprawdza:
    REG Query HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter /f RealModeIrqRoutingTable /s


    Dodano po 43 [minuty]:

    Coś takiego by było w .bat:
    Spoiler:
    @echo off
    REG Query HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter /f RealModeIrqRoutingTable /s
    IF %ERRORLEVEL% == 0 echo Windows boot from Real Mode (Legacy BIOS)
    If %ERRORLEVEL% == 1 echo Windows boot from Protected Mode (UEFI BIOS)
    echo.
    pause

    tylko jak usunąć aby nie wyświetlał tego:
    HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\0\RealModeIrqRoutingTable
    
    End of search: 1 match(es) found.


    Albo takie coś w .vbs:
    Spoiler:
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod

    tylko nie wiem czy podklucz RealModeIrqRoutingTable jest zawsze w kluczu 0 - jak poprawić aby szukał również w podkluczach tak jak pierwszy skrypt .bat, który szuka klucza w MultifunctionAdapter i jego podkluczach?
  • REKLAMA
  • Pomocny post
    #2 18148116
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    W bacie zmień
    Kod: Dos
    Zaloguj się, aby zobaczyć kod


    w vbs trzeba rozbudować o pętle
  • REKLAMA
  • REKLAMA
  • Pomocny post
    #4 18148675
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    vbs
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #6 18661451
    Gelip
    Poziom 36  
    Posty: 5213
    Pomógł: 321
    Ocena: 607
    Próbuję odpalić te skrypty w WinXP SP2 32-bit ale w wersji .bat mam błąd:
    Błąd: za dużo parametrów wiersza polecenia

    a w wersji .vbs mam błąd:
    Pamięć jest zablokowana.

    Skrypt .vbs lub .bat sprawdzający klucz w rejestrze
  • #7 18663692
    Gelip
    Poziom 36  
    Posty: 5213
    Pomógł: 321
    Ocena: 607
    W WinXP x86 jest starsza wersja narzędzia reg.exe, która mniej potrafi od tej w WinXP x64 - szukałem aktualizacji ale nie znalazłem. Próbowałem też na żywca podmienić 32-bitową wersję z katalogu SysWOW64 ale wtedy pojawia się błąd:
    Nie znaleziono punktu wejścia procedury RegGetValueW w bibliotece ADVAPI32.dll


    Natomiast rozwiązałem problem z wersją .bat zastępując opcję /f opcją find (szukana nazwa musi być w cudzysłowie):
    @echo off
    echo.
    REG Query HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter /s | find "RealModeIrqRoutingTable" >nul
    IF %ERRORLEVEL% == 0 echo WinXP boot from ntldr
    IF %ERRORLEVEL% == 1 echo WinXP boot from winload
    echo.
    pause

    Źródło: reg query; Windows 7 vs Windows XP

Podsumowanie tematu

✨ Użytkownik poszukiwał skryptu .bat lub .vbs do sprawdzania obecności klucza w rejestrze Windows, który wyświetlałby komunikaty w zależności od wyniku. W odpowiedziach zasugerowano modyfikację polecenia REG Query, aby ukryć niepotrzebne informacje, oraz dodanie pętli w skrypcie VBS do przeszukiwania podkluczy. Użytkownik dostosował skrypt do WinXP, napotykając problemy z wersją narzędzia reg.exe, co skłoniło go do użycia opcji find w skrypcie .bat. Ostatecznie rozwiązania zostały zaprezentowane w postach, a użytkownik potwierdził ich działanie.
Wygenerowane przez model językowy.
REKLAMA