Mi chiedo se esiste un modo per trovare la chiave del Registro di sistema di un utente locale in HKEY_USERS se si conosce il nome di accesso dell'utente sul computer locale. Voglio aggiungere programmaticamente cose a chiavi di registro di un utente specifico (ad esempio Autorun), ma conosco solo il nome utente. Come posso determinare quale degli utenti criptici in HKEY_USERS appartiene effettivamente a un nome utente specifico?Come posso trovare una chiave di registro HKEY_USERS utente utilizzando powershell?
risposta
$User = New-Object System.Security.Principal.NTAccount($env:UserName)
$sid = $User.Translate([System.Security.Principal.SecurityIdentifier]).value
Il snippet sopra riportato fornisce il SID dell'utente connesso. Questo quando aggiunto a HKEY_USERS ti dà il percorso giusto per quel nome utente.
New-PSDrive HKU Registry HKEY_USERS
Get-Item "HKU:\${sid}"
Questa risposta non è completa, come HKEY_USERS non contiene tutti gli utenti, solo quelli che sono attualmente attivi.
Avrai bisogno di caricare l'hive di registro per l'utente (s) che si desidera lavorare con l'utilizzo di
reg load hku\ThatUserName C:\Users\ThatUserName\NTUSER.DAT
Vedere this SO answer per un esempio di come caricare l'hive del Registro per tutto l'utente (S).
È quindi possibile accedere al Registro di sistema per quell'utente con
Set-Location HKU:\ThatUserName
Oppure chiamare il New-PSDrive per dare Registro di sistema dell'utente è proprio disco, in questo modo:
New-PSDrive -Name HKThatUser -PSProvider Registry -Root HKU\ThatUserName
Set-Location HKThatUser:
Assicurarsi di scaricare il Registro di sistema e fare garbage collection per garantire che l'hive venga rilasciato una volta terminato:
reg unload hku\ThatUserName
[gc]::collect()
Vedere this post for more info
La parte per garantire che l'hive venga rilasciato è importante. Ho dovuto passare l'ordine a '[gc] :: collect() [GC] :: WaitForPendingFinalizers() reg scaricare hku \ ThatUserName'. In caso contrario, ottengo un errore di autorizzazione negato durante lo scaricamento. Se non lo scarico, le modifiche al registro non vengono salvate. – absynce
Questo non fa per me
ls 'hklm:software/microsoft/windows nt/currentversion/profilelist' | ? {
$_.getvalue('profileimagepath') -match 'Steven'
} | % pschildname
- 1. Leggere una chiave di registro
- 2. Come verificare se un utente è autorizzato a leggere/scrivere una chiave di registro particolare?
- 3. Creare una nuova chiave di registro Windows utilizzando C++
- 4. Creazione di una chiave di registro con componenti di percorso tramite PowerShell
- 5. Come mappare le sottochiavi HKEY_USERS e i nomi utente di Windows?
- 6. Come leggere il valore di una chiave di registro C#
- 7. Avvio di Delphi con una chiave di registro alternativa
- 8. Come modificare le chiavi di registro di un utente specifico in modo programmatico?
- 9. Come verificare se esiste una chiave di registro
- 10. ho aggiunto una chiave di registro, ma non riesco a trovare a livello di codice
- 11. Crea file di registro in PowerShell
- 12. Come trovare valore utilizzando la chiave nel dizionario javascript
- 13. Come posso cercare una mappa std :: utilizzando una chiave di un tipo diverso
- 14. come trovare il codice chiave per una chiave specifica
- 15. Verifica se esiste una chiave del Registro di sistema
- 16. Come trovare la versione di PowerShell azzurra?
- 17. OpenSubKey() restituisce null per una chiave di registro che posso vedere in regedit.exe
- 18. Come impostare i Criteri di gruppo "Disabilita l'aggiornamento automatico dei certificati di root" con Registro/PowerShell?
- 19. Imposta chiave di registro tramite l'installazione ClickOnce
- 20. Trova un record in dbSet utilizzando trovare senza una chiave primaria
- 21. C# - Scrittura di un registro utilizzando una casella di testo
- 22. Log4j - Impossibile trovare il file di registro
- 23. Component testcomp installa sul profilo utente. È necessario utilizzare una chiave di registro in HKCU come KeyPath, non un file
- 24. Disabilitazione del reindirizzamento del Registro di sistema per una chiave del Registro di sistema su una piattaforma x64
- 25. Come trovare una derivata di una funzione utilizzando c
- 26. PowerShell: combinando percorso utilizzando una variabile
- 27. Altre semantiche associate alla parola chiave registro
- 28. Come trovare il percorso DLL di un cmdlet PowerShell
- 29. Dove posso trovare alcuni buoni esempi di interfaccia utente Android?
- 30. modificando il valore chiave di registro
Ok, sai come programaticaly (PowerShell) caricare un hive utente, come si può fare con regedit.exe? – JPBlanc
U significava qualcosa di simile all'opzione LOAD reg.exe? – ravikanth
@JPBlanc Sembra che non ci sia supporto in .NET e successivamente in PowerShell per farlo. Dovrai P/Richiamare l'API di Windows utilizzando RegLoadKey(). Controlla questo - http://www.csharphelp.com/2007/01/registry-ins-and-outs-using-c/ –