我是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
}
}
答案 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中的每个用户配置文件。