Come mappa HKEY_USERS sottochiavi e Windows username?

Ho pensato che la chiave di nomi immediatamente sotto HKEY_USERS dovevano essere i nomi di chi connessi a questa macchina, a un certo momento. Ma nella mia macchina ciò che appare è:

S-1-5-18
S-1-5-19
S-1-5-20
S-1-5-21-NNNNNNNNN-NNNNNNNNN-NNNNNNNNNN-NNNNN
S-1-5-21-NNNNNNNNN-NNNNNNNNN-NNNNNNNNNN-NNNNN_Classes

Mi piacerebbe essere in grado di determinare la sottostruttura corrisponde a quale utente. Come posso fare?

Edit: Quello che mi serve è quello di ottenere il nome utente dal Sid. Voglio ispezionare le configurazioni di ogni utente che abbia mai registrato, e ho bisogno di sapere i loro nomi. Per esempio, nel registro di cui sopra, ho bisogno di essere in grado, in base alla stringa “S-1-5-21-NNNNNNNNN-NNNNNNNNN-NNNNNNNNNN-NNNNN”, scoprire che corrispondono a DOMINIO\qualcuno, o NOMECOMPUTERLOCALE\somebodyelse.

OriginaleL’autore JCCyC | 2009-06-22

7 Replies
  1. 9

    È possibile eseguire una query queste informazioni da WMI. Il comando seguente consente di output una tabella con una riga per ogni utente con il SID per ogni utente.

    wmic useraccount get name,sid
    

    È inoltre possibile esportare queste informazioni in un file CSV:

    wmic useraccount get name,sid /format:csv > output.csv
    

    Ho usato questo su Vista e 7 (secondo i commenti, le opere 2008 R2 così). Per ulteriori informazioni, vedere WMIC – Prendere il Controllo della riga di Comando su WMI.

    Bello! Solo a 2008R2 per salvare me una fetta di tempo.

    OriginaleL’autore dcharles

  2. 2

    Credo che quei numeri sono l’utente con ID di protezione (SID). È possibile utilizzare l’Utilità per ottenere il Sid di utenti:

    http://technet.microsoft.com/en-us/sysinternals/bb897417.aspx

    Ho bisogno del suo opposto: ottenere i nomi utente dal Sid. Voglio ispezionare le configurazioni di ogni utente che abbia mai registrato, e ho bisogno di sapere i loro nomi.

    OriginaleL’autore steamer25

  3. 1

    HKLM\System\CurrentControlSet\Control\hivelist vi mostrerà dove le arnie sono montati. Pur non essendo un mapping diretto, di solito il punto di mount è il nome utente nel percorso.

    Sono sicuro che c’è una risposta migliore di questa, anche se…

    Molto utile per i sistemi non di dominio.
    come un lontano vedo: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList opere di dominio-sistemi

    OriginaleL’autore Cooper

  4. 0

    Quando farlo manualmente (senza strumenti), il modo più semplice è quello di aprire le autorizzazioni per il tasto. L’unico utente che dispone delle autorizzazioni è il proprietario della chiave.

    Quando da un programma, avrete bisogno di un modo per convertire Sid i nomi degli account. In C# (o PowerShell), hanno uno sguardo al SecurityIdentifier e NtAccount classe per questo.

    OriginaleL’autore mihi

  5. 0

    in C# non c’è sembra essere una risposta a tradurre il nome utente di SID qui http://community.bartdesmet.net/blogs/bart/archive/2006/09/08/4394.aspx ma è solo per Pc locali.

    Per ANNUNCIO mi sono convertito a:

    using System;
    using System.DirectoryServices;
    using System.Security.Principal;
    
    class Program {
        static void Main(string[] args) {
            string path = "LDAP://" + args[0];
            DirectoryEntry root = new DirectoryEntry(path, args[1], null, AuthenticationTypes.Secure);
            string sid = new SecurityIdentifier((byte[])root.Properties["objectSID"][0], 0).Value;
            Console.WriteLine(sid);
        }
    }
    

    L’utilizzo è : programname.exe DOMINIO nome utente

    ad es. programname.exe somecompany.com preet_sangha

    OriginaleL’autore Preet Sangha

  6. 0

    Si prega di utilizzare powershell:

    $mydocuments = [Environment]::GetFolderPath("mydocuments")
    gwmi win32_userprofile | ft localpath, sid, status -AutoSize | Out-File $mydocuments\userprofiles.txt
    

    OriginaleL’autore amuliar

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *