![](/img/trans.png)
[英]How do I extract child registry keys from a dynamic HKEY_USERS\SID into a reg file, and replace the SID in the regfile using Powershell
[英]How can I programmatically find a users HKEY_USERS registry key using powershell?
我想知道如果您知道本地計算機上該用戶的登錄名,是否有辦法在 HKEY_USERS 中找到本地用戶的注冊表項。 我想以編程方式將內容添加到特定用戶的注冊表項(例如 Autorun),但我只知道用戶名。 如何確定 HKEY_USERS 中的哪些神秘用戶實際上屬於特定用戶名?
$User = New-Object System.Security.Principal.NTAccount($env:UserName)
$sid = $User.Translate([System.Security.Principal.SecurityIdentifier]).value
上面的代碼片段為您提供了登錄用戶的 SID。 當附加到 HKEY_USERS 時,它會為您提供該用戶名的正確路徑。
New-PSDrive HKU Registry HKEY_USERS
Get-Item "HKU:\${sid}"
此答案不完整,因為 HKEY_USERS 不包含所有用戶,僅包含當前處於活動狀態的用戶。
您需要為要使用的用戶加載注冊表配置單元
reg load hku\ThatUserName C:\Users\ThatUserName\NTUSER.DAT
有關如何為所有用戶加載注冊表配置單元的示例,請參閱此 SO 答案。
然后,您可以訪問該用戶的注冊表
Set-Location HKU:\ThatUserName
或者調用 New-PSDrive 為用戶的注冊表提供它自己的驅動器,如下所示:
New-PSDrive -Name HKThatUser -PSProvider Registry -Root HKU\ThatUserName
Set-Location HKThatUser:
請務必卸載注冊表,並進行垃圾收集以確保完成后釋放配置單元:
reg unload hku\ThatUserName
[gc]::collect()
這對我有用
ls 'hklm:software/microsoft/windows nt/currentversion/profilelist' | ? {
$_.getvalue('profileimagepath') -match 'Steven'
} | % pschildname
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.