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

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

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

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

我还没能找到能同时完成这两件事的东西。

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

我都用过

win32_用户配置文件

win32_用户帐户

但是,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

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

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

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

在此处输入图片描述

Windows 用户配置文件对话框:

在此处输入图片描述

相关内容