所以我知道我在寻找什么值,但是我不知道该值的完整路径,因为它在
中 "HKLM\software\microsoft\windows nt\currentversion\profilelist"
,所以用户名/个人资料ID?
所以可以说我带一个叫“ computer_user_01” 的用户。也就是说,他的“ ProfileImagePath” 是"C:\users\computer_user_01"
。
因此,可以说该值的完整路径为:
`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-3548956479-1181130828-1993911463-1001\ProfileImagePath\C:\users\computer_user_01".
所以我需要S-1-5-21-3548956479-1181130828-1993911463-1001\
。
如何从ProfileImagePath键的C:\Users\computer_user_01
值中获取它?
现在我可以查询ProfileImagePath键,但是它给了我所有用户:
Get-ItemProperty -Path "hklm:\software\microsoft\windows nt\currentversion\profilelist\*\" -Name "ProfileImagePath"
如何进一步指定它,可以这样说:
Get-ItemProperty -Path "hklm:\software\microsoft\windows nt\currentversion\profilelist\*\" -Name "ProfileImagePath" -Value "C:\users\computer_user_01"
希望你能理解。
答案 0 :(得分:2)
您可以尝试以下操作:
# First I get the SID
$sid = (gwmi win32_useraccount | ? {$_.name -eq "computer_user_01"}).SID
# Then the value of the property you look for
(Get-ItemPropertyValue "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$sid\" -Name "ProfileImagePath")
答案 1 :(得分:1)
好吧,您使用Get-ItemProperty -Path "hklm:\software\microsoft\windows nt\currentversion\profilelist\*\"
,返回的每个对象都有一个属性ProfileImagePath
和PSChildName
,其中包含您需要的所有内容。
Get-ItemProperty -Path "hklm:\software\microsoft\windows nt\currentversion\profilelist\*\" | ? {$_.ProfileImagePath -eq "C:\users\computer_user_01"} | Select-Object -ExpandProperty PSChildName
返回所需的S-1-5-21-3548956479-1181130828-1993911463-1001
说明:
? {$_.ProfileImagePath -eq "C:\users\computer_user_01"}
-用您的路径ProfileImagePath
查找对象
Select-Object -ExpandProperty PSChildName
-输出成人对象的名称
答案 2 :(得分:0)
您可以这样做:
(Get-ItemProperty -Path "hklm:\software\microsoft\windows nt\currentversion\profilelist\*\" -Name "ProfileImagePath" |
Where-Object { $_.ProfileImagePath -eq 'C:\users\computer_user_01' }).PSChildName