Me pregunto si hay una forma de encontrar la clave de registro de un usuario local en HKEY_USERS si conoce el nombre de usuario de ese usuario en la máquina local. Quiero agregar cosas programáticamente a las claves de registro de un usuario específico (Autorun por ejemplo), pero solo conozco el nombre de usuario. ¿Cómo puedo determinar cuál de los usuarios crípticos en HKEY_USERS realmente pertenece a un nombre de usuario específico?¿Cómo puedo encontrar programáticamente la clave de registro HKEY_USERS de un usuario usando powershell?
Respuesta
$User = New-Object System.Security.Principal.NTAccount($env:UserName)
$sid = $User.Translate([System.Security.Principal.SecurityIdentifier]).value
El fragmento de arriba le proporciona el SID del usuario que ha iniciado sesión. Esto cuando se agrega a HKEY_USERS le da la ruta correcta para ese nombre de usuario.
New-PSDrive HKU Registry HKEY_USERS
Get-Item "HKU:\${sid}"
Esta respuesta no es completa, ya que HKEY_USERS no contiene todos los usuarios, solo aquellos que están actualmente activos.
Tendrá que cargar la sección del Registro para el usuario (s) que desea trabajar con el uso de
reg load hku\ThatUserName C:\Users\ThatUserName\NTUSER.DAT
Ver this SO answer para un ejemplo de cómo cargar la sección del Registro de todo el usuario (s)
entonces usted puede tener acceso al registro de dicho usuario con
Set-Location HKU:\ThatUserName
O llame Nueva PSDrive para dar el registro del usuario su propio coche, así:
New-PSDrive -Name HKThatUser -PSProvider Registry -Root HKU\ThatUserName
Set-Location HKThatUser:
Asegúrese de descargar la registro, y recopilación de basura para asegurarse de que la colmena se libera cuando termine:
reg unload hku\ThatUserName
[gc]::collect()
La parte para asegurar que se libera la colmena es importante. Tuve que cambiar el orden a '[gc] :: collect() [GC] :: WaitForPendingFinalizers() reg download hku \ ThatUserName'. De lo contrario, obtendré un error de permiso denegado al descargar. Si no lo descargo, los cambios en el registro no se guardan. – absynce
Esto lo hace por mí
ls 'hklm:software/microsoft/windows nt/currentversion/profilelist' | ? {
$_.getvalue('profileimagepath') -match 'Steven'
} | % pschildname
- 1. ¿Cómo puedo verificar si un usuario puede leer/escribir una clave de registro en particular?
- 2. Editar la clave de registro de otro usuario
- 3. ¿Cómo se asignan las subclaves HKEY_USERS y los nombres de usuario de Windows?
- 4. Obteniendo el nombre de usuario de los valores HKEY_USERS
- 5. ¿Cómo registro nombres de dominio programáticamente?
- 6. ¿Cómo puedo ver un archivo de registro desde la consola de powershell? (es decir, el equivalente de powershell de 'menos')
- 7. Cómo establecer un valor de registro binario (REG_BINARY) con PowerShell?
- 8. ¿Dónde puedo encontrar programáticamente dónde se almacenan los archivos de registro log4j?
- 9. Encontrar el registro MX usando C#?
- 10. ¿Cómo puedo desinstalar una aplicación usando PowerShell?
- 11. ¿Cómo puedo leer la clave de registro de 64 bits de un proceso de 32 bits?
- 12. ¿Cómo puedo cambiar un valor programáticamente en el Registro de la ventana?
- 13. ¿Cómo puedo obtener el valor de la clave principal cuando inserto un nuevo registro?
- 14. ¿Cómo puedo encontrar Endian-ness de mi PC usando programáticamente C?
- 15. ¿Cómo confirmar programáticamente un usuario en Magento?
- 16. Devuelve el LastWriteTime de una clave de registro especificada en un equipo remoto
- 17. ¿Cómo puedo detectar marcadores de registro en papel usando OpenCV?
- 18. Cómo insertar un registro con LINQ y C# y devolver la clave principal de ese registro
- 19. Cerrar sesión programáticamente un usuario de ASP.NET
- 20. ¿Cómo encontrar el número de fila de un registro?
- 21. Buscar un registro en dbSet encontrar sin el uso de una clave principal
- 22. ¿Cómo encontrar dependencias de clave externa que apuntan a un registro en Oracle?
- 23. ¿Cómo puedo cambiar el nombre de los archivos usando PowerShell?
- 24. ¿Cómo la aplicación de iPhone de Square recupera programáticamente la información de contacto del usuario?
- 25. Cargar el control de usuario programáticamente usando LoadControl (Type, Object())
- 26. ¿Cómo cambiar la contraseña de usuario de Drupal programáticamente?
- 27. Crear una nueva clave de registro de Windows usando C++
- 28. ¿Dónde puedo encontrar el registro de transacciones de MySQL?
- 29. Lea una clave de registro
- 30. ¿Cómo puedo encontrar el uso de la CPU y la RAM con PowerShell?
Ok, ¿sabe cómo programaticaly (PowerShell) cargar una sección de usuario, como se puede hacer con regedit.exe? – JPBlanc
U significa algo similar a la opción de CARGAR reg.exe? – ravikanth
@JPBlanc Parece que no hay soporte en .NET y posteriormente en PowerShell para hacer eso. Tendrás que P/Invocar la API de Windows usando RegLoadKey(). Mira esto - http://www.csharphelp.com/2007/01/registry-ins-and-outs-using-c/ –