Есть ли способ подключения между значениями под HKEY_USERS и фактическим именем пользователя?
Я видел некоторые подобные вопросы, но большинство (если не все) говорит о коде C#, и моя потребность в VBScript.Получение имени пользователя из значений HKEY_USERS
ответ
Если посмотреть на одну из следующих клавиш:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist
Вы можете найти список УЛМ там с различными значениями, в том числе, где их «дома путей», который включает в себя их имена пользователей.
Я не уверен, насколько это надёжно, и я бы не стал советоваться с этим, если вы не уверены, что делаете.
Можно запросить эту информацию от WMI. Следующая команда выводит таблицу со строкой для каждого пользователя вместе с SID для каждого пользователя.
wmic useraccount get name,sid
Вы также можете экспортировать эту информацию в формате CSV:
wmic useraccount get name,sid /format:csv > output.csv
Я использовал это на Vista, и 7. Для получения дополнительной информации см WMIC - Take Command-line Control over WMI.
К сожалению, SID, которые я получаю, не соответствуют значениям под HKEY_USERS в Windows 7 x64. –
Возможно, что законный SID выглядит, по-видимому, отсутствующим, потому что в тот момент улей этого конкретного пользователя не загружается.'Runas/profile/user: wishuser somearbitrarycommand' загрузит его. – amonroejj
Совершено это, по немного творческого программирования,
Enum ключи в HKEY_USERS для этих ключей смешных номер ...
Enum ключи в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \
и вы увидите одни и те же номера .... Теперь в этом клавише посмотреть на значении Строки: ProfileImageP ATH = "SomeValue", где значения либо:
"% SystemRoot% \ system32 \ Config \ systemprofile" ... не заинтересован в этом ... как его не путь в каталог ...
% SystemDrive% \ Documents и Settings \ LocalService - "Локальные услуги" % SystemDrive% \ Documents и Settings \ NETWORKSERVICE "NETWORK SERVICE"
или
% SystemDrive% \ Documents и Settings \ имя_пользователя, который переводит прямо к значениям «USERNAME» в большинстве несанкционированных систем, т.е. где пользователь не изменил свое имя пользователя через несколько недель или явно изменил пути ...
Открыть Reg HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \
сделать петлю, чтобы получить все подразделы
подразделы Вас интересует являются те, которые начали с [ S-1-5-21-], что означает пользователь (см. Имя ключа [ProfileImagePath], они всегда начинаются с пути c: \ Users)
Те, кто начат с [S-1-5-21-12] все местные пользователи
Все, начиная с [S-1-5-21-13], являются пользователями сети [, если они присоединены к Domain network], которые ранее были зарегистрированы на компьютере.
3 содержит ошибку и не мудрый совет. [ProfileImagePath] НЕ ИМЕЕТ начать с пути c: \ Users ... Посмотрите https://www.google.com/#hl=ru&tbo=d&output=search&sclient=psy-ab&q=move+windows+7+ пользователь + каталог; Кроме того, как и в других местах, прокомментировал эту тему и упомянул @spade, если пользователь/администратор изменил имя пользователя и пароль для входа в учетную запись пользователя, имя каталога профиля больше не будет соответствовать имени пользователя (http://support.microsoft.com)/kb/2454362) – user66001
for /f "tokens=8 delims=\" %a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist" ^| find "UsrClass.dat"') do echo %a
Вы можете использовать теги «code' markup» для форматирования этого примера кода :) – summea
Вы можете использовать команду PsGetSid из команды SysInternals Microsoft.
Скачать URL: http://technet.microsoft.com/en-gb/sysinternals/bb897417.aspx
Использование:
psgetsid [\\computer[,computer[,...] | @file] [-u username [-p password]]] [account|SID]
-u Specifies optional user name for login to remote computer.
-p Specifies optional password for user name. If you omit this you will be prompted to enter a hidden password.
Account PsGetSid will report the SID for the specified user account rather than the computer.
SID PsGetSid will report the account for the specified SID.
Computer Direct PsGetSid to perform the command on the remote computer or computers specified. If you omit the computer name PsGetSid runs the command on the local system, and if you specify a wildcard (\\*), PsGetSid runs the command on all computers in the current domain.
@file PsGetSid will execute the command on each of the computers listed in the file.
Пример:
psgetsid S-1-5-21-583907252-682003330-839522115-63941
NB:
- Если пользователь является домен/AD (LDAP) пользователя , запуская это на любом вычислении er на домене должны давать одинаковые результаты.
- Если пользователь является локальным для машины, команда должна быть запущена на этом компьютере, или вы должны указать компьютер через необязательный параметр.
Update
Если вы используете PowerShell, следующие могут быть полезны для решения любых пользователей AD в списке:
#create a drive for HKEY USERS:
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS -ErrorAction SilentlyContinue
#List all immediate subfolders
#where they're a folder (not a key)
#and they's an SID (i.e. exclude .DEFAULT and SID_Classes entries)
#return the SID
#and return the related AD entry (should one exist).
Get-ChildItem -Path 'HKU:\' `
| ?{($_.PSIsContainer -eq $true) `
-and ($_.PSChildName -match '^S-[\d-]+$')} `
| select @{N='SID';E={$_.PSChildName}} `
, @{N='Name';E={Get-ADUser $_.PSChildName | select -expand Name}}
Вы также можете уточнить SID фильтра далее только отменить те SID, которые будут разрешены к учетной записи AD, если вы пожелаете; больше на структуру SID здесь: https://technet.microsoft.com/en-us/library/cc962011.aspx
, ища мой идентификатор пользователя в реестре, я нашел
HKEY_CURRENT_USER\Volatile Environment\Username
- 1. Получение имени пользователя из твитов
- 2. Получение имени пользователя из другого зарегистрированного пользователя
- 3. Получение имени хоста пользователя
- 4. Получение имени пользователя пользователя - MyBB
- 5. Получение имени пользователя Parse
- 6. Получение имени пользователя facebook
- 7. vb2010 получение значений имени из нескольких кнопок
- 8. Получение значений из модуля по имени?
- 9. Получение имени пользователя из указателя (Parse.com)
- 10. Получение имени пользователя из другого файла php
- 11. Получение отображаемого имени пользователя из WindowsIdentity
- 12. Получение имени пользователя из Slack API
- 13. получение имени пользователя из siteminder sso
- 14. Получение имени пользователя из базы данных MYSQL
- 15. Получение имени пользователя из ID без автообновления
- 16. Получение имени пользователя из url с параметрами
- 17. Получение имени пользователя из SID в C++?
- 18. Получение значений от пользователя
- 19. получение имени пользователя от имени компьютерной сети
- 20. Получение аутентифицированного имени пользователя пользователя на поддомене
- 21. Получение имени роли у пользователя?
- 22. C# asp.net получение имени пользователя
- 23. Получение пустой строки имени пользователя
- 24. Получение имени пользователя в Sharepoint?
- 25. Получение полного имени от пользователя
- 26. Получение имени пользователя в Android
- 27. Получение имени пользователя для PFObject
- 28. Получение имени пользователя в Swift
- 29. Получение имени пользователя PFUser (Parse.com)
- 30. Получение имени пользователя в PFQueryTableView
Именно то, что мне было нужно. Благодаря! – modz0r
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ hivelist кажется только зарегистрированным пользователем в каждой системе (Xp-7), на который я смотрел ... И я бы не рассматривал HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \ \ ProfileImagePath - надежный способ определения имени пользователя (см. Http://support.microsoft.com/kb/2454362). –
user66001