我正在像这样获得所有Windows用户:
PrincipalContext ctx = new PrincipalContext(ContextType.Machine, Environment.MachineName);
UserPrincipal ctxUserPrincipal= new UserPrincipal(ctx);
ctxUserPrincipal.Name = "*";
PrincipalSearcher principalSearcher = new PrincipalSearcher();
principalSearcher.QueryFilter = ctxUserPrincipal;
PrincipalSearchResult<Principal> principalSearchResult = principalSearcher.FindAll();
foreach (Principal principal in principalSearchResult)
{
using (UserPrincipal userPrincipal = (UserPrincipal)principal)
{
// ...
}
}
它可以正常工作,但是当使用Microsoft帐户创建Windows帐户时,userPrincipal.EmailAddress
仍然为空。
当帐户的电子邮件不是“本地”而是与Microsoft关联时,我需要提取它们。我尝试了一些解决方案,但发现没有任何效果。
有什么建议吗?预先感谢