如何使用PowerShell从UPS获取单个用户配置文件?

时间:2017-11-14 09:45:45

标签: powershell sharepoint

我是Powershell世界的新手。我想使用Powershell从UPS获取单个用户数据,而不是循环通过UPS中的每个用户。 我也跟着this。他们在这里将电子邮件与UPS电子邮件进行比较,然后他们将获取UPS中匹配电子邮件的个人资料。

Add-PSSnapin "Microsoft.SharePoint.PowerShell"
$emailAddress = "EMAIL ADDRESS YOU WISH TO QUERY"
$site = Get-SpSite $mySitesURL;
$context = Get-SPServiceContext $site;
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
$allProfiles = $profileManager.GetEnumerator()
foreach ($profile in $allProfiles) {
    if ($profile.GetProfileValueCollection("WorkEmail") -eq $emailAddress) {
        $profile
    }
}

1 个答案:

答案 0 :(得分:1)

我认为这就是你要找的东西。试试这个:

Add-PSSnapin "Microsoft.SharePoint.PowerShell"
$emailAddress = "EMAIL ADDRESS YOU WISH TO QUERY"
$site = Get-SpSite $mySitesURL;
$context = Get-SPServiceContext $site;
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
$userProfile  = $profileManager.GetEnumerator()| Where-Object {$_["WorkEmail"].value -like $emailAddress}

它将仅根据$emailAddress获取单个用户数据。您不需要遍历UPS中的每个用户配置文件。