Ad Widget

Collapse

Vyčítání hodnot z registru HKCU/HKU nefunguje

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Rudlafik
    Senior Member
    • Nov 2018
    • 144

    #1

    Vyčítání hodnot z registru HKCU/HKU nefunguje

    Ahoj,

    potřebuji vyčíst hodnotu verze z registu:
    Code:
    HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\Teams
    Bohužel jak do HKCU tak HKU se nedostanu. Zdá se mi, že v manuálu chybí detail, že klient nemá do těchto klíčů přístup. Nebo má?
    Code:
    registry.data["HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\Teams","DisplayVersion"]
    Testoval jsem i registry.get avšak se stejným neuspokojivým výsledkem.
    Server i klient je 644.
    Neřešili jste toto? Nemáte tip jak tohle poladit? Dostat se do registru HKCU nebo vlastnosti souboru v uživatelské složce?

    RK
  • Answer selected by Rudlafik at 19-07-2023, 09:32.
    Alois Zadražil
    Junior Member
    • Nov 2020
    • 11

    Ahoj, tohle není ani tak problém Zabbixu, jako princip fungování registry ve windows. Pokud saháš do větve HKCU, tak saháš do větve aktuálně přihlášeného uživatele - v případě, že se ptáš skrz zabbix agenta je to uživatel, pod kterým ti zabbix agent běží ( defaultně system ) a ten žádné nainstalované Teamsy pravděpodobně nemá. Pokud chceš zjistit verzi MS Teams z daného klíče registry, musíš se ptát na konkrétní větev registry pomocí SID daného uživatele - něco jako:

    zabbix_get -s 10.1.1.1 -k registry.get["HKU\S-1-5-21-1922883303-1322203608-1417001333-1548\Software\Microsoft\Windows\CurrentVersion\Uni nstall\Teams"]

    No a aby to bylo ještě složitější, tak Windows si do paměti "natáhne" uživatelskou větev registry jen pro aktuálně přihlášeného uživatele. Pokud je to uživatelský typ instalace Teamsů a chceš znát verze nainstalované uživateli, tak by teoreticky šlo udělat discovery na profily uživatelů, získat jejich SIDy a do příslušných větví registry se poté ptát jednotlivě - ale k dispozici bude hodnota jen pro aktuálně přihlášeného uživatele - pokud se přihlašuje jen jeden uživatel, tak to asi bude fungovat. Seznam SIDů a příslušných uživatelů je možné najít tady: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

    Lojza

    Comment

    • Alois Zadražil
      Junior Member
      • Nov 2020
      • 11

      #2
      Ahoj, tohle není ani tak problém Zabbixu, jako princip fungování registry ve windows. Pokud saháš do větve HKCU, tak saháš do větve aktuálně přihlášeného uživatele - v případě, že se ptáš skrz zabbix agenta je to uživatel, pod kterým ti zabbix agent běží ( defaultně system ) a ten žádné nainstalované Teamsy pravděpodobně nemá. Pokud chceš zjistit verzi MS Teams z daného klíče registry, musíš se ptát na konkrétní větev registry pomocí SID daného uživatele - něco jako:

      zabbix_get -s 10.1.1.1 -k registry.get["HKU\S-1-5-21-1922883303-1322203608-1417001333-1548\Software\Microsoft\Windows\CurrentVersion\Uni nstall\Teams"]

      No a aby to bylo ještě složitější, tak Windows si do paměti "natáhne" uživatelskou větev registry jen pro aktuálně přihlášeného uživatele. Pokud je to uživatelský typ instalace Teamsů a chceš znát verze nainstalované uživateli, tak by teoreticky šlo udělat discovery na profily uživatelů, získat jejich SIDy a do příslušných větví registry se poté ptát jednotlivě - ale k dispozici bude hodnota jen pro aktuálně přihlášeného uživatele - pokud se přihlašuje jen jeden uživatel, tak to asi bude fungovat. Seznam SIDů a příslušných uživatelů je možné najít tady: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

      Lojza

      Comment

      • Rudlafik
        Senior Member
        • Nov 2018
        • 144

        #3
        Jasně je to jen větev registrů pro aktivního uživatele. A ZBX agent je jen systemova služba. Shánim info jestli jste tuhle "jízdu na jiný koleji prokopli". Ale když vememe v úvakhu Tvoji definici: "v případě, že se ptáš skrz zabbix agenta je to uživatel, pod kterým ti zabbix agent běží ( defaultně system ) a ten žádné nainstalované Teamsy pravděpodobně nemá." A je to logický závěr.
        Pak se ptám: Jak je možné že klidně v manuálu definují dotazy na HKCU a HKU když tyto klíče v registrech zabbix agent nemá a nemůže se do nich dostat. Protože po otestování se dostanu jen do systémových větví registrů, ale do uživatelských ne. Takže vývojáři testují funkcionality na prostředí kde jim běží zabbix agent pod účty uživatele?!

        Code:
        Comments:[LIST][*]Supported root abbreviations:
        HKCR - HKEY_CLASSES_ROOT
        HKCC - HKEY_CURRENT_CONFIG
        HKCU - HKEY_CURRENT_USER
        HKCULS - HKEY_CURRENT_USER_LOCAL_SETTINGS
        HKLM - HKEY_LOCAL_MACHINE
        HKPD - HKEY_PERFORMANCE_DATA
        HKPN - HKEY_PERFORMANCE_NLSTEXT
        HKPT - HKEY_PERFORMANCE_TEXT
        HKU - HKEY_USERS[/LIST]​
        To LLD na SID je pěknej nápad. Jako udělat dotaz na paren item JSON a z něho pak udělat LLD a generovat itemy pro jednotlivé uživatele?

        Takže když:
        Code:
        zabbix_get -s NB8.fa.local -k registry.data["HKCU\Software\Microsoft\Windows\CurrentVersion\Un install\Teams","DisplayVersion"]
        ZBX_NOTSUPPORTED: The system cannot find the file specified.​
        Proč mají v manuálu v pohodě uvedeno: Supported root abbreviations: HKCU - HKEY_CURRENT_USER? Když jej agent nemůže použít...

        Ale funguje:

        Code:
        zabbix_get -s NB8.fa.local -k registry.data["HKU\S-1-5-21-2369397585-562187566-27451779530-10942\Software\Microsoft\Windows\CurrentVersion\Uninstall\Teams","DisplayVersion"]
        1.6.00.18681
        ​
        Last edited by Rudlafik; 19-07-2023, 09:31.

        Comment

        • Alois Zadražil
          Junior Member
          • Nov 2020
          • 11

          #4
          Ahoj, pořád si asi úplně nerozumíme - dotaz na HKCU z agenta funguje, jen vrací větev uživatele system - každý uživatel má svojí větev a i system je uživatel - i když trochu zvláštní uživatel. Není proto důvod tuto funkcionalitu nepodporovat a zabbix agent může běžet i pod jiným uživatelem. Dotaz ti nefunguje, protože se ptáš na část registry, která prostě neexistuje - system v uživatelském profilu nainstalované MS Teams nemá - zkrať dotaz a zeptej se na:

          zabbix_get -s NB8.fa.local -k registry.get["HKCU\Software\Microsoft\Windows\CurrentVersio n"]

          a dostaneš odpověď

          Jinak - pro představu - terminálovém serveru může být připojeno současně víc uživatelů a každý se může ptát do HKCU a dostane svojí vlastní větev - pokud se chce podívat do registry jiného přihlášeného uživatele, tak pokud na to má práva, může se podívat do HKU\<SID uživatele>. Pokud by se chtěl podívat do registry uživatele, který není přihlášený, musel by si systém registru připojit offilne ( v regeditu to jde - uživatelské registry jsou v profilu uživatele ).

          Comment

          • Rudlafik
            Senior Member
            • Nov 2018
            • 144

            #5
            No Jasně! Dík, už mi bliklo! Hele udělal jsem to jak jsi mi poradil s LLD a funguje to skvěle. Jedná se mi o vlastně malý audit koncových stanic. Teamsy, VPN, antivir klienti atp. Kluci z koncovek to budou mít pěkně na jednom místě.
            Moc děkuji za rady.

            Comment

            • Alois Zadražil
              Junior Member
              • Nov 2020
              • 11

              #6
              Super, není zač.

              Comment

              Working...