Есть ли способ, либо PowerShell, Batch, C #, чтобы получить список всех профилей в настоящее время на локальном компьютере. Мне нужно собрать список профилей и показать, являются ли они локальными пользователями или пользователями домена, и к какому домену они тоже принадлежат.
Как показано на скриншоте ниже, у Microsoft есть окно "Профили пользователей", которое именно то, что я ищу, за исключением того, что я хотел бы автоматизировать его и получить из сценария или чего-то еще.
Я не смог найти ничего, что делает оба.
Я попытался сделать смесь получения локальной информации профиля через WMI или через реестр, чтобы получить информацию.
Я использовал оба
win32_UserProfile
а также
win32_UserAccount
Тем не менее, UserProfile только дает мне пути к userprofiles, без информации о домене. UserAccount возвращает все AD, даже при попытке отфильтровать его по SID, но занимает много времени.
PS>Get-WmiObject -Class win32_userprofile | select localpath, SID
localpath SID
--------- ---
C:\Users\TestUser1 S-1-5-21-440147649-543696746-2340718013-21890
C:\Users\Admin S-1-5-21-4226746363-32877083-2456121708-500
C:\Users\TestUser2 S-1-5-21-1876808186-3675847616-1704270002-46278
C:\Windows\ServiceProfiles\NetworkService S-1-5-20
C:\Windows\ServiceProfiles\LocalService S-1-5-19
C:\Windows\system32\config\systemprofile S-1-5-18
Моя следующая попытка состояла в том, чтобы использовать информацию из WMI, загрузить кусты реестра пользователей и получить оттуда домен, в котором они находятся, однако я не смог найти никакой полезной информации при загрузке куста реестра пользователей. Я заметил, что если текущий пользователь вошел в систему, там есть ключ для "Volatile Environment" (скриншот ниже), который содержит всю необходимую информацию, но доступен только тогда, когда этот пользователь вошел в систему, не загружая улей вручную.
Где еще я могу найти эту информацию?
Текущий пользователь, изменчивая среда:
Диалог профиля пользователя Windows: