Hay una manera de conectar entre los valores en HKEY_USERS para el real nombre de usuario?

He visto algunas preguntas similares, pero la mayoría (si no todos) habla sobre el código de C#, y mi necesidad es en VBScript.

InformationsquelleAutor modz0r | 2010-05-27

8 Comentarios

  1. 61

    Si observas cualquiera de las siguientes teclas:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist

    Usted puede encontrar una lista de los Peid allí con varios valores, incluyendo donde su «casa de caminos», que incluye sus nombres de usuario.

    No estoy seguro de cuán confiable es este y no recomiendo meterse con esto a menos que usted está realmente seguro de lo que estás haciendo.

    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist parece ser sólo el usuario actualmente conectado en cada sistema (Xp – 7) he mirado… Y yo no lo consideraría HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SSID>\ProfileImagePath una manera confiable de determinar el nombre de usuario (Consulte support.microsoft.com/kb/2454362).
  2. 24

    Es posible consultar esta información de WMI. El siguiente comando mostrará una tabla con una fila para cada usuario junto con el SID de cada usuario.

    wmic useraccount get name,sid

    También puede exportar esta información a CSV:

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

    He usado esto en Vista y 7. Para obtener más información, consulte WMIC – Tome la línea de Comandos de Control WMI.

    • Por desgracia, el Sid puedo conseguir no coinciden con los valores en HKEY_USERS en Windows 7 x64.
    • Es posible que una de fiar SID a ser aparentemente ausente porque ese usuario en particular la sección no se carga a la derecha en ese momento. Runas /profile /user:desireduser somearbitrarycommand la cargará.
  3. 12
    1. Abrir Reg HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\

    2. hacer un bucle para obtener todas las subclaves

    3. las subclaves que están interesados son los que se iniciaron con [S-1-5-21-] lo que significa que el usuario (vea el nombre de la tecla [ProfileImagePath] se inicia siempre con una ruta de acceso c:\Users)

    4. Las que comienzan con [S-1-5-21-12] son todos los usuarios locales

    5. Las que comienzan con [S-1-5-21-13] son todos los usuarios de la red [si se unió a Domained red] que están previamente registrados en la máquina.

    • 3 contiene un error, y no sabia aconsejar. [ProfileImagePath] no TIENE que empezar con una ruta de acceso c:\Users… Mira google.com/…; También, como en otros lugares comentado en este hilo, y mencionado por @pala si el usuario / administrador ha cambiado los usuarios nombre de usuario post y creación de cuenta de inicio de sesión, el directorio de perfil nombre ya no coincide con el nombre de usuario (support.microsoft.com)/kb/2454362)
  4. 4

    Buscando mi id de usuario en el registro, he encontrado

    HKEY_CURRENT_USER\Volatile Environment\Username
    • Que es CURRENT_USER, no en el USUARIO
  5. 3

    Puede utilizar el comando PSGetSid de Microsoft SysInternals equipo.

    URL de descarga: http://technet.microsoft.com/en-gb/sysinternals/bb897417.aspx

    Uso:

    psgetsid [\computer[,computer[,...] | @file] [-u username [-p password]]] [account|SID]
    -u  Specifies optional user name for login to remote computer.
    -p  Specifies optional password for user name. If you omit this you will be prompted to enter a hidden password.
    Account PsGetSid will report the SID for the specified user account rather than the computer.
    SID PsGetSid will report the account for the specified SID.
    Computer    Direct PsGetSid to perform the command on the remote computer or computers specified. If you omit the computer name PsGetSid runs the command on the local system, and if you specify a wildcard (\*), PsGetSid runs the command on all computers in the current domain.
    @file   PsGetSid will execute the command on each of the computers listed in the file.

    Ejemplo:

    psgetsid S-1-5-21-583907252-682003330-839522115-63941

    NB:

    • Donde el usuario es un dominio/AD(LDAP) de usuario, la ejecución de este en cualquier equipo en el dominio debería dar el mismo resultado.
    • Donde el usuario es local a la máquina, el comando debe ejecutarse en el equipo, o se debe especificar el ordenador mediante el parámetro opcional.

    Actualización

    Si el uso de PowerShell, la siguiente información puede ser útil para la resolución de cualquier ANUNCIO de usuarios en la lista:

    #create a drive for HKEY USERS:
    New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS -ErrorAction SilentlyContinue
    
    #List all immediate subfolders
    #where they're a folder (not a key)
    #and they's an SID (i.e. exclude .DEFAULT and SID_Classes entries)
    #return the SID
    #and return the related AD entry (should one exist).
    Get-ChildItem -Path 'HKU:\' `
    | ?{($_.PSIsContainer -eq $true) `
    -and ($_.PSChildName -match '^S-[\d-]+$')} `
    | select @{N='SID';E={$_.PSChildName}} `
    , @{N='Name';E={Get-ADUser $_.PSChildName | select -expand Name}}

    También puede refinar el SID de filtro más a sólo tire hacia atrás de los Peid, que se resolverá en una cuenta de AD si usted desea; más en la estructura de SID aquí: https://technet.microsoft.com/en-us/library/cc962011.aspx

  6. 2

    En el HKEY_USERS\oneyouwanttoknow\ usted puede mirar \Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders y se va a revelar sus rutas de perfil. c:\users\whothisis\Desktop, etc.

    • HKEY_USERS sólo tiene el real de los usuarios registrados y los usuarios predeterminados como «NT AUTHORITY\SYSTEM»
  7. 1
    for /f "tokens=8 delims=\" %a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist" ^| find "UsrClass.dat"') do echo %a
    • Puede que desee utilizar code marcado «etiquetas» para el formato de este código de ejemplo 🙂
  8. 0

    Hecho, por un poco de programación creativa,

    1. Enumeración de las Teclas, en HKEY_USERS para esos divertidos número de teclas…

    2. Enumeración de las teclas, en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\

    y usted encontrará el mismo número…. Ahora en las claves de buscar en la Cadena de valor:
    ProfileImagePath = «SomeValue» donde los valores son:

    «%systemroot%\system32\config\systemprofile»… no se interesan en este… como que no es un
    ruta de acceso del directorio…

    %SystemDrive%\Documents and Settings\LocalService – «Servicios Locales»
    Carpeta %SystemDrive%\Documents and Settings\NetworkService «SERVICIO de RED»

    o

    %SystemDrive%\Documents and Settings\NOMBRE_USUARIO, que se traduce directamente en el «nombre de USUARIO» valores en la mayoría de las naciones unidas-alterado los sistemas, es decir,. donde el usuario no ha cambiado su nombre de usuario después de un par de semanas o alteración de las rutas de acceso de forma explícita…

    • «»%systemroot%\system32\config\systemprofile»… ya que no es una ruta de directorio…» es incorrecta. Trate de c&p esta en el cuadro de diálogo ejecutar.
    • (Confirmado que trabajan en WinXP + 7)

Dejar respuesta

Please enter your comment!
Please enter your name here