获取机器本地和域上的用户配置文件列表

Ski*_*007 5 windows

有没有办法通过 PowerShell、批处理、C# 来获取当前在本地计算机上的所有配置文件的列表。我需要收集配置文件列表并显示他们是本地用户还是域用户,以及他们也属于哪个域。

如下面的屏幕截图所示,微软有“用户配置文件”窗口,这正是我正在寻找的,除了我想自动化它并从脚本或其他东西中获取它。

我一直无法找到任何两者兼而有之的东西。

我尝试混合通过 WMI 或通过注册表获取本地配置文件信息来获取信息。

我两个都用过

win32_UserProfile

win32_UserAccount

但是, UserProfile 只给我用户配置文件的路径,没有域信息。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
Run Code Online (Sandbox Code Playgroud)

我的下一次尝试是使用来自 WMI 的信息并加载用户注册表配置单元并从那里获取它们所在的域,但是在加载用户注册表配置单元时我找不到任何有用的信息。我确实注意到,如果当前用户已登录,则“易变环境”中有一个键(下面的屏幕截图),其中包含我需要的所有信息,但仅在该用户当前登录时可用,而不是加载手动蜂巢。

我还能在哪里找到这些信息?

当前用户,不稳定的环境:

在此处输入图片说明

Windows 用户配置文件对话框:

在此处输入图片说明