簡體   English   中英

如何使用 powershell 以編程方式查找用戶 HKEY_USERS 注冊表項?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM